从0学习React(7)

在上篇文章中,我们重点讲了关于函数组件的状态管理。这篇文章,我用一种新的方式来讲一讲React,我会通过一个函数来去讲React。当然,这肯定不能一个函数讲完,但是我可以讲很多个函数,一篇文章讲一个,很快,80%的React的语法知识基本就讲到了。

这个函数是这样的:

复制代码
const openDetail = () => {
  fetchMenuPermission({ path: '/device/deviceManage' }).then((res) => {
    const data = res.data;
    if (data && data.length > 0) {
      setPermissions(data);
      setShowDetail(true);
    } else {
      message.warn('没有设备管理权限');
    }
  });
};

代码解析

1. const openDetail = () => { ... };
  • 这是一个箭头函数(arrow function)的声明。
  • openDetail 是函数的名称。
  • ()是函数的参数,这个函数没有参数。
  • { ... }是函数体,即函数的内容。
2. fetchMenuPermission({ path: '/device/deviceManage' })
  • fetchMenuPermission 是一个函数,接受一个对象作为参数,这个对象包含一个 path 属性,其值为 '/device/deviceManage'
  • 假设 fetchMenuPermission 返回一个 Promise 对象。
3. .then((res) => { ... })
  • then 方法用于处理 fetchMenuPermission 返回的 Promise 对象。
  • 当 Promise 解析成功时,then 方法中的回调函数会被调用,res 是 Promise 解析后的结果。
4. const data = res.data;
  • res 对象中提取 data 属性,并将其赋值给常量 data
5. if (data && data.length > 0) { ... } else { ... }
  • 这是一个条件判断语句。
  • 检查 data 是否存在且其长度是否大于 0。
6. setPermissions(data);
  • 如果条件为真,调用 setPermissions 函数,并传入 data 作为参数。
  • 假设 setPermissions 是一个用于更新权限数据的状态更新函数。
7. setShowDetail(true);
  • 调用 setShowDetail 函数,并传入 true 作为参数。
  • 假设 setShowDetail 是一个用于更新是否显示详细信息的状态更新函数。
8. message.warn('没有设备管理权限');
  • 如果条件为假,调用 message.warn 方法,显示警告信息 '没有设备管理权限'
  • 假设 message 是一个用于显示消息的对象,warn 方法用于显示警告消息。

使用的语法和概念

1. 箭头函数(Arrow Function)
  • 箭头函数是一种简洁的函数定义方式,语法为 const functionName = (params) => { ... };

  • 在箭头函数中,this 关键字的行为与普通函数不同,它不会绑定自己的 this,而是继承自外层作用域。

    const openDetail = () => { ... };

2. 对象字面量(Object Literal)
  • 对象字面量用于创建对象,语法为 { key: value }

    fetchMenuPermission({ path: '/device/deviceManage' })

3. Promise 和 then 方法
  • Promise 是一种异步编程的解决方案,用于处理异步操作的结果。

  • then 方法用于在 Promise 解析成功时执行回调函数。

    fetchMenuPermission(...).then((res) => { ... });

4. 解构赋值(Destructuring Assignment)
  • 解构赋值用于从对象或数组中提取值,并赋值给变量。

    const data = res.data;

5. 条件语句(Conditional Statement)
  • 条件语句用于根据条件的真假执行不同的代码块。

    if (data && data.length > 0) { ... } else { ... }

6. 状态更新函数(State Update Function)
  • setPermissionssetShowDetail 假设是 React 的状态更新函数,用于更新组件的状态。

    setPermissions(data);
    setShowDetail(true);

相关推荐
腾讯TNTWeb前端团队6 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰9 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪9 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪9 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy10 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom11 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom11 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom11 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom11 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom11 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试