【前端】《坐标 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 采用了不可变约定和浅层比较,是为数组读取操作而优化的。
目录
相关文章
|
1月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
66 9
|
1月前
|
前端开发 JavaScript Android开发
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第27天】React Native 是跨平台开发领域的佼佼者,凭借其独特的跨平台能力和高效的开发体验,成为许多开发者的首选。本文探讨了 React Native 的优势与挑战,包括跨平台开发能力、原生组件渲染、性能优化及调试复杂性等问题,并通过代码示例展示了其实际应用。
57 2
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
1月前
|
前端开发 JavaScript 开发者
“揭秘React Hooks的神秘面纱:如何掌握这些改变游戏规则的超能力以打造无敌前端应用”
【10月更文挑战第25天】React Hooks 自 2018 年推出以来,已成为 React 功能组件的重要组成部分。本文全面解析了 React Hooks 的核心概念,包括 `useState` 和 `useEffect` 的使用方法,并提供了最佳实践,如避免过度使用 Hooks、保持 Hooks 调用顺序一致、使用 `useReducer` 管理复杂状态逻辑、自定义 Hooks 封装复用逻辑等,帮助开发者更高效地使用 Hooks,构建健壮且易于维护的 React 应用。
34 2
|
1月前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
2月前
|
JavaScript 前端开发 算法
前端优化之超大数组更新:深入分析Vue/React/Svelte的更新渲染策略
本文对比了 Vue、React 和 Svelte 在数组渲染方面的实现方式和优缺点,探讨了它们与直接操作 DOM 的差异及 Web Components 的实现方式。Vue 通过响应式系统自动管理数据变化,React 利用虚拟 DOM 和 `diffing` 算法优化更新,Svelte 通过编译时优化提升性能。文章还介绍了数组更新的优化策略,如使用 `key`、分片渲染、虚拟滚动等,帮助开发者在处理大型数组时提升性能。总结指出,选择合适的框架应根据项目复杂度和性能需求来决定。
|
2月前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。
|
1月前
|
前端开发 Android开发 开发者
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第26天】近年来,React Native凭借其跨平台开发能力在移动应用开发领域迅速崛起。本文将探讨React Native的优势与挑战,并通过示例代码展示其应用实践。React Native允许开发者使用同一套代码库同时构建iOS和Android应用,提高开发效率,降低维护成本。它具备接近原生应用的性能和用户体验,但也面临平台差异、原生功能支持和第三方库兼容性等挑战。
32 0
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】 React与Vue:前端框架的巅峰对决与选择策略
|
2月前
|
前端开发 JavaScript API
2025年前端框架是该选vue还是react?有了大模型-例如通义灵码辅助编码,就不用纠结了!vue用的多选react,react用的多选vue
本文比较了Vue和React两大前端框架,从状态管理、数据流、依赖注入、组件管理等方面进行了详细对比。当前版本和下载量数据显示React更为流行,但Vue在国内用户量增长迅速。Vue 3通过组合式API提供了更灵活的状态管理和组件逻辑复用,适合中小型项目;React则更适合大型项目和复杂交互逻辑。文章还给出了选型建议,强调了多框架学习的重要性,认为技术问题已不再是选型的关键,熟悉各框架的最佳实践更为重要。