美文网首页
与React-redux的相遇

与React-redux的相遇

作者: 菜鸟碎碎恋 | 来源:发表于2016-09-24 09:23 被阅读0次

看这篇文章需要具备的知识:


react入门教程:react中文文档

redux入门教程:redux中文文档

ES6入门教程:阮一峰写的es6入门文档

redux-react教程:lewis617大神写的react-redux入门教程

如果你上面的知识已经熟悉了,那么也许你入门了。在程序员这个行业,要学会现学现用,在不断的填坑的过程中壮大自己(当然这是我个人的想法)。

与React相约

我专业本身是嵌入式开发,弄过开发板,写过Android,烧写过bootload,然后由于需要转身投入到web开发。框架基本是 spring-boot + react-redux这一套。下面要讲的内容,默认前提是你已经学过前面所列的入门教程,如果没有请移步。

相约react的生命周期:对于react来说生命周期很重要,下面附张生命周期图:

react生命周期图

注意踩坑点死循环:

页面都是经过render函数之后显示在网页上的(当然,这里面是有个虚拟DOM的,这句话不严谨,但是展开讲的话就偏离主题了,暂且这么认为),props变化(例如发请求等)会出发几个生命周期函数运行,但是因为react采用单向数据流,所以在props上不大会这个坑。但是state不一样,这是表示组件当前状态的,同样state值改变(通过setState)会触发相关生命周期函数执行,从生命周期图上不难看出,你去在render或should update函数中操作改变state试试,程序肯定会痛不欲生。

render函数中不能书写es语句块:

当然了我刚开始接触这块的时候,我也很纠结,为什么不能写语句块呢。

类似于这样的:

<div>  {

      var a=0;

      return <span> hello word </span>

}</div>

然而这段代码是不会达到预期效果的,why,what's happen。这时候就得去翻翻react源码了,render函数是react的入口函数,通过render将虚拟DOM中的元素渲染到真实的DOM上面,下面我们来看这个函数:

ReactComponent render( ReactElement element, DOMElement container, [function callback] )

要彻底的了解这个坑我们需要拿到这个ReactElement这个object来分析下:

ReactElement createElement( string/ReactClass type, [object props], [children ...] )

这里面接收三个参数,第一个参数是指我们的html标签,如div,span等,第二个参数接收组件属性,第三个参数是子元素。

例如:React.render(

<h1 color="red">Hello world </h1>

document.getElementById('example')

);

编译出来是这样的:

React.render( React.createElement("h1", {color:"red"},"Hello, world!"),

document.getElementById('example') );

好现在我们回去看上面有错误的那段代码,被编译后是这样子的:

React.render( React.createElement("div", null,var a=0 ; return hello word ),

看到这,你大概也知道问什么代码会报错了吧,哪有这样子的参数的,所以在render函数中用大括号里面的jsx代码只支持单个函数。类似于下面这样:

React.createElement("div",null, names.map(function( ) {

returnReact.createElement("div",null,"Hello word")

}) ),

反翻译过来代码是这样的:

React.render(

<div>

{

     names.map(function(name) {

     return  Hello word

     })

}

</div>

document.getElementById('example')

);

时间问题暂时就讲这么多,后续会持续更新,有兴趣的还可以去看看react-native,号称是一处编写,任何地方运行。其实我和你们一样也是在不断的摸索着前进。同时本文章有什么不严谨的地方请多多包涵(写文章是,严谨这方面已经很注意了),但是如果发现有错误请任性的指出,谢谢!

相关文章

  • 与React-redux的相遇

    看这篇文章需要具备的知识: react入门教程:react中文文档redux入门教程:redux中文文档ES6入门...

  • react+webpack+react-router+redux

    (12)react-redux 与上述手动编译,引入store不同,react-redux提供了一个方法conne...

  • react-redux

    react-redux 主要: react-redux与redux并不完全一样 主要特征 ui组件 容器组件由 R...

  • React(五)

    React-redux(三):connect和mapStateToProps React-redux(四):map...

  • redux的简单应用

    1、安装 redux和react-redux: npm i redux react-redux --save-de...

  • react-redux简介(二)源码解析

    写在开头 前置知识内容,react、react-redux。 react-redux文档:https://www....

  • react-redux

    react-redux react-redux可以使redux的state成为组件的属性,dispatch的act...

  • react-redux

    使用react-redux,可以更方便的使用redux开发 先install react-redux使用react...

  • react-redux

    redux 全局状态管理 react-redux 优化模块 优化redux的使用过程 通过react-redux ...

  • react-redux

    react-redux 相关步骤 npm install react-redux --save 在项目中导入re...

网友评论

      本文标题:与React-redux的相遇

      本文链接:https://www.haomeiwen.com/subject/takxyttx.html