2022 React 最速上手指南(四)—— 重构 & React DOM

简介: 2022 React 最速上手指南(四)—— 重构 & React DOM

以结果为导向,写给刚学完前端三剑客和想要了解 React 框架的小伙伴,使得他们能快速上手(省略了历史以及一些不必要的介绍)。



重构


src/App.js 中所有的组件都是用 function 来声明的,我们可以使用 ES6 中新增的箭头函数来简化它们。


  • 举例:


function () { ... }
const () => { ... }
const item => { ... }
const (item) => { ... }
const (item, index) => { ... }
复制代码

声明箭头函数时,如果只有一个参数,可以把括号去掉;但多个参数时,括号是必须的(为了避免麻烦,我们参数统一使用括号)。


  • 实际应用:


const App = () => {
  return (
    <div>
      ...
    </div>
  );
};
const List = () => {
  return (
    <ul>
      {list.map((item) => {
        return (
          <li key={item.objectID}>
            ...
          </li>
        );
      })}
    </ul>
  );
};
复制代码


可以看到 map() 也和其他函数一样可以使用箭头函数简化。

如果一个箭头函数没有执行任何任务,只返回信息,我们也可以去掉 {} 以及 return,函数会自己附上一个隐式的返回声明:


const App = () => (
  <div>
    ...
  </div>
);
const List = () => (
  <ul>
    {list.map((item) => (
      <li key={item.objectID}>
        ...
      </li>
    ))}
  </ul>
);
复制代码


可以看到 JSX 简洁了许多,但你要记住:这是可选的步骤,并不是必须的。

且函数签名和返回语句之间需要引入业务逻辑时,必须要加上 {} 以及 return


React DOM


现在我们已经大概了解了组件的定义,让我们来看看 App 组件的实例化。

打开 src/index.js 文件:


import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);
reportWebVitals();
复制代码


React.StrictMode 是一个用来突出显示应用程序中潜在问题的工具,不用管它。

重点只有这一句:


ReactDOM.render(<App />, document.getElementById("root"));
复制代码


我们用 ReactDOM.render() 函数让 JSX 替换掉 HTML 中的一个 DOM 节点,也就是将 React 集成到了 HTML中。


该方法需要传入两个参数:


  • 首先是要渲染的 JSX,你可以传入一个简单的 JSX,也可以直接传入一个组件的实例,如 <App />
  • 第二个参数指定了 React 应用在何处显示你的 HTML,你可以在 public/index.html 文件中找到这个 id="root" 的元素。


image.png


专栏


因为参加打卡活动是每日更新,所以可能比较短小,可以关注一下 React 入门专栏

在更新完后会整合为一整篇,感谢关注和点赞!

目录
相关文章
|
1月前
|
前端开发 JavaScript 算法
深入理解前端框架:解析 React 的虚拟 DOM
虚拟 DOM 是 React 前端框架的核心概念之一。本文将深入探讨虚拟 DOM 的原理和应用,帮助读者更好地理解 React 框架的工作机制,并学习如何高效地使用虚拟 DOM 进行前端开发。
52 1
|
1月前
|
JavaScript 前端开发 算法
js开发:请解释什么是虚拟DOM(virtual DOM),以及它在React中的应用。
虚拟DOM是React等前端框架的关键技术,它以轻量级JavaScript对象树形式抽象表示实际DOM。当状态改变,React不直接操作DOM,而是先构建新虚拟DOM树。通过高效diff算法比较新旧树,找到最小变更集,仅更新必要部分,提高DOM操作效率,降低性能损耗。虚拟DOM的抽象特性还支持跨平台应用,如React Native。总之,虚拟DOM优化了状态变化时的DOM更新,提升性能和用户体验。
46 0
|
1天前
|
JavaScript 前端开发 算法
虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。
【6月更文挑战第27天】虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。当状态改变,React不直接修改DOM,而是先构建新的虚拟DOM树。通过 diff 算法比较新旧树,找到最小变更,仅更新必要部分,提高性能,避免频繁DOM操作。虚拟DOM还支持跨平台应用,如React Native。它优化了更新流程,简化开发,并提升了用户体验。
8 1
|
1月前
|
JavaScript 前端开发 算法
React中的DOM diff算法是如何工作的
React的DOM diff算法通过对比新旧虚拟DOM树找到最小更新策略,提高组件更新效率。它生成并比较虚拟DOM,按类型、属性和&quot;key&quot;逐节点检查。不同类型节点直接替换,属性不同则更新属性,相同则递归比较子节点。确定DOM操作后批量执行,减少对真实DOM的访问,优化性能。然而,在复杂场景下可能有性能问题,可借助shouldComponentUpdate、memo或PureComponent等进行优化。
|
1月前
|
JavaScript 前端开发
|
1月前
|
JavaScript 前端开发 算法
说说React中的虚拟dom?在虚拟dom计算的时候diff和key之间有什么关系?
说说React中的虚拟dom?在虚拟dom计算的时候diff和key之间有什么关系?
26 0
|
1月前
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
203 0
|
1月前
|
存储 前端开发 JavaScript
【第34期】一文学会React组件传值
【第34期】一文学会React组件传值
42 0
|
1月前
|
前端开发
【第31期】一文学会用React Hooks组件编写组件
【第31期】一文学会用React Hooks组件编写组件
42 0
|
1月前
|
资源调度 前端开发 JavaScript
React 的antd-mobile 组件库,嵌套路由
React 的antd-mobile 组件库,嵌套路由
70 0