React
文章平均质量分 76
__zRainy__
愚者,笃行。
展开
-
React —— 深入JSX
深入JSX实际上,jsx仅仅只是React.createElement(component,props,...children)函数的语法糖。如下JSX代码:<MyButton color="blue" shadowSize={2}>Click Me</MyButton>会编译为:React.createElement( MyButton, {color:'blue',shadowSize:2}, 'Click Me)如果没有子节点,原创 2021-02-21 23:32:04 · 150 阅读 · 0 评论 -
React —— 与第三方库协同使用
与第三方库协同React可以用于任何web应用中。它可以被嵌入刀其他应用,且需要足以,其他的应用也可以敲入刀React中。集成带有DOM操作的插件React不理会React自身之外的DOM操作。它根据内部虚拟DOM来决定是否需要更新,而且如果同一个DOM节点被另一个库操作了。React会觉得困惑而且没有办法恢复。这并不意味着React与其他操作DOM的方式不能结合,也不一定结合困难,只不过需要你去关注每个库所做的事情。避免冲突的最简单方式就是防止React组件更新。你可以渲染无需更新的Reac原创 2021-02-21 23:30:07 · 587 阅读 · 0 评论 -
React —— 高阶组件(HOC)
高阶组件高阶组件(HOC)是React中用于复用组件逻辑的一种高级技巧。HOC自身不是React API的一部分,它是一种基于React的组合特性而形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组建的函数。const EnhanceComponent = higherOrderComponent(WrappedComponent)组件是将props转化为ui,而高级组件是将组件转化为另一个组件。HOC在React的第三方库中非常常见,例如Redux的connect和Relay的C原创 2021-01-06 17:47:00 · 523 阅读 · 0 评论 -
React —— 使用Fragments不增DOM节点返回多个子节点
FragmentsReact中的一个常见模式是一个组件返回多个元素。Fragments允许你将字列表分组,而无需向DOM添加额外的子节点。class App extends React.Component{ render(){ return <React.Fragment> <div></div> <div></div> <div>原创 2021-01-06 17:46:26 · 461 阅读 · 0 评论 -
React —— ref使用分析
ref分析为什么有ref,虽然官方总是不推荐使用这种破坏整体框架的api,但是实际开发,总有一些场景需要直接操作DOM元素,所以有了这个api.但是如果能不使用尽量不使用.破坏了"属性和状态去映射视图",正常流程中的组件属性均有数据映射而来,绑定了ref相当于提供直接修改属性的额外途径,导致属性不可控.破坏了"属性不可变性,单向数据流",增加额外了操作数据的途径,可能改变属性不可变性,让数据的流动不可控.降低了可读性,破坏了整体代码风格和组织结构.虽然,有种种不利,但是在一些场景确实有效并原创 2021-01-06 17:43:17 · 585 阅读 · 0 评论 -
React —— 使用Refs转发技巧
Refs转发Ref转发是一项将ref自动地通过组件传递到其一子组件的技巧。对于大多数应用中的组件来说,这通常不是必需的。但是其对某些组件,尤其是可重用的组件库是很有用的。转发refs到DOM组件考虑这个渲染原生DOM元素button的FancyButton组件:function FancyButton(props){ return ( <button className="FancyButton"> {props.children}原创 2021-01-06 17:42:09 · 384 阅读 · 0 评论 -
React —— 使用错误边界进行React错误隔离
错误边界过去,组件内的JavaScript错误会导致React的内部状态被破坏,并且在下一次渲染时产生可能无法追踪的错误。这些错误基本上是因为较早的其他代码(非React组件代码)错误引起的,但是React并没有提供一种在组件中优雅处理这些错误的方式,也无法从错误中恢复。错误边界(Error Boundaries)部分UI的javascript错误不应该导致整个应用崩溃,为了解决这个问题,React16引入了一个新的概念——————错误边界。错误边界是一种React组件,这些组件可以捕获并打印发原创 2020-12-15 23:51:07 · 443 阅读 · 0 评论 -
React —— 如何通过上下文(context)跨级管理状态
使用context之前的考虑Context主要应用场景在于很多不同层级的组件需要访问同样一些的数据。如果你只是想避免层层传递一些属性,组件组合(component composition)有时候是一个比context更好的方案。 function Parent(){ return <TestChilren name={'子组件name'}> <TestGrandson name={'孙组件name'}></TestGrands原创 2020-12-13 22:17:05 · 483 阅读 · 0 评论 -
React —— 基于React的思想构建一个应用
React 哲学React 最棒的部分之一是引导我们思考如何构建一个应用。在这篇文档中,我们将会通过React构建一个可搜索产品数据的表格来更深刻的领会React哲学。从设计稿开始假设我们已经有了一个返回JSON的API,以及设计师提供的组件设计稿。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uPjsKVC8-1607868746795)(https://react.docschina.org/static/1071fbcc9eed01fddc115b41e193e原创 2020-12-13 22:13:16 · 140 阅读 · 0 评论 -
React ——究竟是应该使用组合还是继承?
组合 vs 继承React 有十分强大的组合模式。我们推荐使用组合而非继承来实现组件间的代码重用。包含关系有写组件无法提前知晓它们的子组件的具体内容。在Sidebar(侧边栏)和Dialog(对话框)等展示通用容器(box)的组件中特别容易遇到这种情况。我们们建议这些组件使用一个特殊的childrenprop来将他们的子组件传递到渲染结果中:function FancyBorder(props){ return ( <div className={'FancyBord原创 2020-12-13 22:12:04 · 595 阅读 · 0 评论 -
React ——优雅的管理状态之“状态提升”
状态提升通常,多个组件需要反映相同的变化数据,这时我们建议将共享状态提升到最近的共同父组件中区,让我们看看它是如何运作的。在本节中,我们将穿件一个用于计算水在给定温度下是否会沸腾的温度计算器。我们将从一个名为boilingVerdict的组件开始,他接受celsius温度座位一个prop,并据此打印出该温度是否足以将水煮沸的结果。function BoilingVerdict (props) { if (props.celsius >= 100) { return &原创 2020-12-13 22:10:48 · 353 阅读 · 0 评论 -
React —— 从表单认识的受控组件
表单在React里,HTML表单元素的工作方式和其他的DOM的元素有些不用,这是因为表单元素通常会保持一些内部的state,例如这个纯html表单直接收一个名称: <form> <label> 名称: <input type="text" name="name"/> </label> <input type="submit" value="提交"原创 2020-12-13 22:07:49 · 266 阅读 · 0 评论 -
React —— 列表和Key的重要作用
列表 & Key在JavaScript中如何转化列表。如下代码,我们使用map()函数让数组中的每一项变成双倍,然后我们得到了一个新的列表doubled并打印出来:const numbers=[1,2,3,4,5];const doubled = numbers.map(function(number){ return number * 2})console.log(doubled)代码打印出 [2,4,6,8,10]。在React中,把数组转化为元素列表的过程是相似的。原创 2020-12-09 22:26:58 · 169 阅读 · 0 评论 -
React —— 如何理解条件渲染
条件渲染在React中,你可以创建不同的组件来封装各种你需要的行为。然后依据应用的不同状态,你可以只渲染对应状态下的部分内容。React中的条件渲染和javaScript中的一样,使用JavaScript运算符if或者条件运算符去创建元素来表现当前的状态,然后让React根据他们来更新UI。function UserGreeting(props) { return <h1>Welcome back!</h1>;}function GuestGreeting(pro原创 2020-12-09 22:26:28 · 222 阅读 · 0 评论 -
React —— 绑定事件回调
事件处理React元素的事件处理和DOM元素的很相似,但是有一点语法的不同:React事件的命名采用小驼峰式(camelCase),而不是纯小谢。使用jsx语法时你需要传入一个函数座位事件处理函数,而不是一个字符串。例如,传统的HTML:<button onclick="activateLasers()"> Activate Lasers</button>在React中略微不同:<button onClick={activateLasers}>原创 2020-11-23 21:57:26 · 668 阅读 · 0 评论 -
React —— 实现一个时钟的例子
实现一个时钟的例子首先我们需要function Tick () { const clock = <div> <h1>Hello, world!</h1> <h2>It is {new Date().toLocaleTimeString()}.</h2> </div> ReactDOM.render( element, document.getE原创 2020-11-23 21:56:55 · 1952 阅读 · 0 评论 -
React —— JSX和React DOM和浏览器DOM
JSX和React DOM和浏览器DOMJSXJSX 是 JavaScript的语法扩展,用来描述UI应该呈现出它应有交互的本质形式。在UI中需要绑定事件、数据变化时候需要通知到UI,以前渲染数据到UI的,通过JSX能很直观的表示出来。并且JSX的写法打破传统的将标记与逻辑进行分离到这种分离形式,而是将二者同时存放在一个单元组件中,来实现关注点分离,也就是模块化。在JSX中嵌入表达式 const name = 'Josh Perez'; const element = <h原创 2020-11-23 21:56:21 · 271 阅读 · 1 评论 -
React —— 开始一个react应用的两种方式
开始React 是一个用于构建用户界面的 JavaScript 库。诞生之初就是可被逐步采用的,因而你可以按需引入或多或少的 React 特性。不管你是想体验下 React,用它给简单的 HTML 页面增加一点交互,还是要开始一个完全由 React 驱动的复杂应用。直接在网站中使用React.js我们可以像普通库一样,直接在html中用过script标签引入js文件的方式使用。 <script src="https://unpkg.com/react@16/umd/react.dev原创 2020-11-17 23:18:50 · 266 阅读 · 0 评论