当前位置: 首页 > news >正文

哪个网站做简历dz论坛seo

哪个网站做简历,dz论坛seo,淘客网站怎么做 知乎,建设工程施工合同的特征一、视图更新有哪些方案&#xff1f; useState用法介绍 1、对于数据变量 正常的增删改查&#xff0c;只会让数据更新&#xff0c;但是不会触发 React 视图的更新&#xff1b; 如&#xff1a; <script lang"jsx">const baseTable [{name:Andy, age: 18, id…

一、视图更新有哪些方案?

useState用法介绍

1、对于数据变量 正常的增删改查,只会让数据更新,但是不会触发 React 视图的更新;

如:

<script lang="jsx">const baseTable = [{name:'Andy', age: 18, id: 1},{name:'Jack', age: 19, id: 2},
]const handleAdd = () => {baseTable.push({id: baseTable.length + 1,name: `${baseTable.length + 1}-newName`,age: baseTable.length + 10})// 这样操作时,是不会触发React 视图更新的;
}export default const MyTable = () => {return (<><button onClick={handleAdd}>新增</button></>)
}
export default  MyTable
</script>

2、为什么会出现这种情况?

2.1、局部变量无法在多次渲染中持久保存。当 React 再次渲染这个组件时候,他会从头开始渲染,并不会考虑之前对局部变量的任何更改;
2.2、更改局部变量不会触发渲染。React 没有意识到它 需要使用新数据 重新渲染组件;

3、如何解决?要做到如下两点

3.1、保留 渲染之前的数据
3.2、触发 React 使用新数据渲染组件-达到重新渲染的效果

4、React 内部自带 Hook useState 提供解决方案

4.1、State 变量 用于保存渲染 之间的数据。
4.2、State setter 函数更新变量 并且触发 React 再次渲染组件;

如:

<script lang="jsx">import React, { useState } from 'react// 比如写一个列表const Table = () => {// useState() 返回 的第一个参数是初始值,第二是更改初始值的方法;const [tableData, setData ] = useState([])const handleAdd = () => {const curTable = tableDatacurTable.push({id:1, name: 'Andy', age: 18})// 通过 setData 修改初始值,并且更新视图// 需要浅拷贝的方式获取数据并修改// 对于react 来说 引用类型的都是地址,没有重新赋值(地址没有改变),故不会更新视图setData([...curTable])}const Itmes = tableData && tableData.map(itm =>return (<li key={itm.id} onClick={() => handleEdit(itm)}>{itm.name}</li>))return (<><ul><Itmes></Itmes></ul></ul>)}
</script>

二、React 中事件的应用注意事项

1、通常是以 handle 开头的,编程书写习惯,但是为了提高代码的可读性,建议保持良好的编写规范;

<script lang="jsx">const myForm = () => {const [count, setCount] = useState(0)const handleAdd = () => {setCount(count + 1)}return (<><div>修改内容:{name}</div>{/* 第一种 */}<button onClick={() => handleAdd()}>add1</button>{/* 第二种 */}<button onClick={() => setCount(count + 1)}>add2</button>{/* 第三种,此时 handleAdd 后面 没有 () 小括号,不然就是方法直接执行了 */}<button onClick={handleAdd}>add3</button></div>)}export default myForm
</script>

2、事件处理函数 props 应该以 on开头,后面跟一个大写字母即驼峰命名

必须传递事件处理函数,而非函数调用! onClick={handleClick}不是 onClick={handleClick()}

子组件

<script lang="jsx">// { onSubmit, name } = props 对象
const MyButton  = ({ onSubmit, name }) => {return (<><button type="button" onClick={() =>onSubmit(name)}>{name}</button></>)
}
export default MyButton;
</script>
// 父组件
<script lang="jsx">import React, { useState } from 'react'import MyButton from './myButton.jsx'const MyEvent = () => {const [ count, setCount ] = useState(0)const handleSubmit = (data) => {console.log('submit:', data)setCount(`${count}_andy`)}return (<>  {/* onSubmit 与子组件 props 中的 onSubmit 保持一致 即 等号左侧为 子组件 属性 方法名称;等号右侧为 父组件中的 方法 属性名称*/}<MyButton onSubmit={handleSubmit} name={count}>MyButton</MyButton></>)}
export default MyEvent
</script>

三、React 事件中处理 阻止冒泡阻止默认事件

利用原生事件的
e.stopPropagation(); --阻止冒泡;
e.preventDefault();–阻止默认事件

<script lang="jsx">const myButton = () => {const handleSubmit = () => {console.log('提交了')}return (<button type="button"onClick={(e) => {{/* 阻止事件冒泡 */}e.stopPropagation();handleSubmit()}}>add</button><button type="button"onClick={(e) => {{/* 阻止默认事件 */}e.preventDefault();handleSubmit()}}>add</button>)}</script>
http://www.hkea.cn/news/452975/

相关文章:

  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广
  • 中国公司查询网站网络公司起名
  • wordpress邮箱内容更改一键关键词优化