摘要: React通过虚拟DOM在真实DOM和js之间加了一个缓存的效果,之后React组件在更新的过程中,会通过React内部的diff算法来算出最终需要操作的最小DOM节点,以达到渲染上的一个优化,性能最优的一个效果。 对于我们开发者来说,如果碰到一些比较特别的组件,我们可以通过shouldCompon 阅读全文
posted @ 2020-05-12 08:19 大沙漠 阅读(6606) 评论(0) 推荐(2) 编辑
摘要: React应用在初始化和更新的过程中,会经过一系列的逻辑,React在不同的逻辑时期会执行不同的生命周期函数,用来给我们做一些处理。 对于初次挂载来说,也就是整个React应用初始化时会执行componentWillMount和componentDidMount生命周期函数 对于更新应用时,比如父组 阅读全文
posted @ 2020-05-09 07:30 大沙漠 阅读(14493) 评论(0) 推荐(1) 编辑
摘要: 在React当中,function组件返回的是一段jsx代码,对于function组件本身来说,是没有实例的,因此如果我们在引用一个function组件时如果设置了一个ref属性是无效的,React还会做出一些检查并给出错误提示,例如: <div id="root"></div> <script t 阅读全文
posted @ 2020-04-23 08:02 大沙漠 阅读(4243) 评论(0) 推荐(0) 编辑
摘要: 在class组件中我们会用render返回一系列的组件或者DOM节点,有时我们需要获取某一个DOM节点或者子组件的实例,然后去对他进行一些手动的操作,我们可以在componentDidMount生命周期函数内通过DOM选择器来获取对应的DOM对象,但是这不是很方便,因为很多需要都需要我们保存对应的D 阅读全文
posted @ 2020-04-20 06:37 大沙漠 阅读(13288) 评论(0) 推荐(0) 编辑
摘要: 在React当中,父组件通过props给子组件传递属性的,但是当组件的嵌套层次非常多的时候,使用props传参就不是很方便了,此时可以用context来实现。类似于Vue里的provide/inject这一对选项组,实现的效果是一样的。 React里的context只能由class组件来提供,然后c 阅读全文
posted @ 2020-04-15 08:04 大沙漠 阅读(3091) 评论(0) 推荐(1) 编辑
摘要: React应用创建完成后,只有执行this.setState或this.forceUpdate方法才能更新应用,forceUpdate一般用得比较少,在有些比较另类的需求里比较适合吧。它们的使用方法如下: setState(partialState,callback) ;更新组件的state,par 阅读全文
posted @ 2020-04-10 09:03 大沙漠 阅读(8016) 评论(0) 推荐(0) 编辑
摘要: React当中,我们使用JSX来指定React里的模板,可以把JSX理解为一个对象,React中可以在三个地方指定jsx,分别是ReactDOM.render()的参数、function组件的返回值和class组件内render函数的返回值,例如: <div id="root"></div> <sc 阅读全文
posted @ 2020-04-07 07:46 大沙漠 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 当前前端三大框架(vue、react和angular),除了vue之外,国内用得最多的就是react了,之前一直对其实现原理比较好奇,在花了很多时间深入研究了其源码实现后,本篇开始记录一下 同样的功能,用vue和react都能实现,相比较vue,react的学习门槛比较高,但是好处是它非常灵活,执行 阅读全文
posted @ 2020-04-01 07:56 大沙漠 阅读(3512) 评论(0) 推荐(1) 编辑
摘要: 通过VueRouter实例的push()操作,可以进行路由跳转,对于<router-link/>组件来说,它绑定的是click事件,最后也是通过执行push()方法来进行路由跳转的。 对于push()方法来说,一共可以传入三种形式的参数: 字符串形式,值为路劲 含有name的对象形式,可以搭配par 阅读全文
posted @ 2020-03-23 08:11 大沙漠 阅读(3112) 评论(0) 推荐(0) 编辑
摘要: router-view是一个 functional 组件,渲染路径匹配到的视图组件。<router-view> 渲染的组件还可以内嵌自己的 <router-view>,根据嵌套路径,渲染嵌套组件 它只有一个名为name的props,这个name还有个默认值,就是default,一般情况下,我们不用传 阅读全文
posted @ 2020-03-19 09:08 大沙漠 阅读(10438) 评论(4) 推荐(2) 编辑