useState函数

打印 上一主题 下一主题

主题 1741|帖子 1741|积分 5233

seState是一个react Hook(函数),它允许我们像组件添加一个状态变量,从而控制影响组件的渲染效果
数据驱动试图

本质:和普通JS变量不同的是,状态变量一旦发生变革组件的视图UI也会随着变革(数据驱动试图)
 

利用 修改状态

注意:const [count,setCount ] = useState(0)和响应方法必须写在function App() {
}内
  1. import { useState } from 'react' //引入
  2. function App() {
  3. const [count,setCount ] = useState(0)  //结构  count状态变量   setCount修改状态变量的方法
  4. function loginbtn(type,e){
  5.       setCount(count+1) //更改数据响应式
  6.   }
  7. }
  8.   return (
  9.     <div>
  10.                 <button onClick={(e)=>loginbtn(1,e)}>登录</button>
  11.      {count}
  12.     </div>
  13.   );
  14. }
  15. export default App;
复制代码
修改状态规则

状态不可变


修改对象状态


  1. import { useState } from 'react'
  2. function App() {
  3. const [ user,setUser ] = useState({
  4.   name:'张三',
  5.   age:18,
  6. })
  7. const nameChange = ()=>{
  8.   setUser({
  9.     ...user,
  10.     name:'李四'
  11.   })
  12. }
  13.   return (
  14.     <div>
  15.      <button onClick={nameChange}>修改{user.name}</button>
  16.     </div>
  17.   );
  18. }
  19. export default App;
复制代码
 修改数组状态

  1. import { useState } from 'react';
  2. let list = [
  3.   {name:'张三',age:18},
  4.   {name:'李四',age:20}
  5. ];
  6. function App() {
  7.   const [lists, setLists] = useState(list);
  8.   function handleClick() {
  9.     const namechange = lists.map(item => {
  10.       if (item.name === '张三') {
  11.         // 不作改变
  12.         return item;
  13.       } else {
  14.         return {
  15.           ...item,
  16.           name: '王五',
  17.         };
  18.       }
  19.     });
  20.     // 使用新的数组进行重渲染
  21.     setLists(namechange);
  22.   }
  23.   return (
  24.     <div>
  25.       <button onClick={handleClick}>
  26.         改变name
  27.       </button>
  28.       
  29.     <div/>
  30.   );
  31. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表