【前端】《坐标 React 星》重要知识点(一)

简介: 【前端】《坐标 React 星》重要知识点(一)

正文


  1. _jsx 创建的只是一个简单的对象,并不是 DOM 节点,所以它没有 appendChild 方法供我们调用。

const div = <div />
div.appendChild("input")


  1. JSX 和 HTML 两种标记语言不一样的根源是因为 JSX 就是 JavaScript 代码,要遵循 JavaScript 代码规则。当然,我们还可以把 JSX 看成增强型的 HTML,因为支持自定义标签等高级功能。


  1. 组件元素返回的是 React 元素,其实就是一个 JavaScript 对象,并不是 DOM 元素。


  1. 只要是表达式就可以放到 JSX 的大括号里,因为 JSX 实际上就是 JavaScript 代码,大括号内的表达式也将被作为 JavaScript 执行。


  1. 当大括号内的表达式为数组时,JSX 会把数组内容解释为标签的“孩子”。这样,当数据以数组的形式存在时我们能够轻易地将其转换为响应的 JSX 标签。


  1. key 最佳选项是数据里本来就存在的 id,

<select>
    {snacks.map((snack) => (
        <option key={snack.id} value={snack.id}></option>
    ))
    }
</select>


  1. 因为 State 里的数据是不可变的。React 只要看到还是同一个数组,就会认为 State 没有发生任何变化。即使你非要直接修改数组,React 也会置之不理,不会更新用户界面。确切地说,这是 React 与所有程序员的一个约定:State 内的数据、Prop 和 React 元素都是不可变的。之所以只是一个约定,是因为在 JavaScript 中没有办法将数组强制设置为不可变,所以对这个约定遵守与否,革命还得靠自觉(后果也得自负)。


  1. 无论 State 中的是数组还是对象,我们要刷新的话,就必须重建一个新的数组或对象,不能直接在原有的数组或对象的基础上修改。所以,在调用数组或对象方法时,也必须注意该方法是返回新的实例,还是在原有的实例上修改,例如,Array.slice 返回一个新的数组,而 Array.sort 则会在原地修改该数组。


  1. 为什么要不可变?就单次来说,重建确实比直接修改慢,但从总体上来说,这种采用重建来修改状态的机制性能更优。为什么直接修改微观上快,宏观上慢呢?这是因为,在绝大多数的用户界面里,最频繁的操作不是对程序状态的修改,而是对状态数据的读取比对。如果我们约定所有的状态数据值都是不可变的,那么对其的比对操作的性能就会有至少一个数量级的提升。


  1. 如果整个界面和程序状态大致不变、而需要非常频繁地读取和比对系统的状态,例如绝大部分的 Web 应用界面,用 React 就对了。这是因为 React 采用了不可变约定和浅层比较,是为数组读取操作而优化的。
目录
相关文章
|
17天前
|
前端开发 测试技术 开发工具
探索前端框架React Hooks的优势与应用
本文将深入探讨前端框架React Hooks的优势与应用。通过分析React Hooks的特性以及实际应用案例,帮助读者更好地理解和运用这一现代化的前端开发工具。
|
10天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
【4月更文挑战第30天】对比 Flutter(Dart,强类型,Google支持,快速热重载,高性能渲染)与 React Native(JavaScript,庞大生态,热重载,依赖原生渲染),文章讨论了开发语言、生态系统、性能、开发体验、学习曲线、社区支持及项目选择因素。两者各有优势,选择取决于项目需求、团队技能和长期维护考虑。参考文献包括官方文档和性能比较文章。
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
|
10天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
11天前
|
开发框架 缓存 前端开发
|
14天前
|
前端开发 JavaScript Linux
relectron框架——打包前端vue3、react为pc端exe可执行程序
relectron框架——打包前端vue3、react为pc端exe可执行程序
28 1
|
15天前
|
前端开发 数据可视化 API
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏(二)
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏
30 0
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏(二)
|
15天前
|
前端开发 JavaScript CDN
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏(一)
前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏
30 0
|
2月前
|
前端开发 JavaScript C++
探讨前端框架选择:Vue vs React
在当今快速发展的前端开发领域,选择合适的前端框架至关重要。本文将围绕Vue和React这两大热门前端框架展开讨论,分析它们的特点、优势和适用场景,帮助开发者更好地做出选择。
|
2月前
|
前端开发 JavaScript 安全
使用React、TypeScript和Ant Design构建现代化前端应用
使用React、TypeScript和Ant Design构建现代化前端应用
30 0
|
2月前
|
开发框架 前端开发 JavaScript
深入探究React:前端开发的利器
深入探究React:前端开发的利器
22 1