React6 实战项目1

本文为 React 的第一个项目,需要使用 livereload(此文中有使用介绍)

完整代码包下载         (运行时可能显示 gulp 版本不匹配,可重新自行下载 npm install -g -gulp      npm install --save-dev -gulp)

配置生产环境:

        1、cmd 进入项目文件夹

        2、创建 reactQa 并进入:mkdir reactQa && cd reactQa

        3、安装必要的组件:npm init,一直回车就好

        4、npm install react --save

        5、npm install -g gulp

        6、npm install --save-dev gulp gulp-browserify gulp-concat gulp-react gulp-connect lodash reactify

        7、安装 bootstrap(与 gulp 配合使用)

                       安装 bower : npm install bower -g

                       bower init (一直回车就好)

                       bower install bootstrap --save

         8、创建静态文件 app文件夹 dist文件夹(压缩后的文件存放位置) index.html  index-static.html gulpfile.js    

         9、dist 内创建 js 文件夹,新建 main.js 文件    

         10、app 内创建 js 文件夹

                      新建 main.js

                      新建 components 文件夹,新建  QuestionApp.js、QuestionForm.js、QuestionItem.js、QuestionList.js、ShowAddButton.js    

          11、gulp serve 

以下为项目中使用的知识点:

完整知识点下载

1、Hello World

      引用 react.js 以及 JSXTransformer.js 可自行下载

      React6 实战项目1

2、组件嵌套

      React6 实战项目1

3、state

      React6 实战项目1

4、props

      React6 实战项目1

5、events 与 ref

      对于不确定个数的 radio 与 checkbox 还是建议 onChange 事件而不使用 ref 属性

      ref 是 react 对象,所以在子组件中定义新的函数,在父组件中使用,ref 也是可以使用的

      ref 也可以被定义为函数,如 ref={function(comp){ React.findDOMNode(comp).focus()}}

      React6 实战项目1

6、双向数据流  使用 mixins

      需要多引用 react-with-addons.js

      在 script 中首先需要写入 mixins,mixins:[React.addons.LinkedStateMixIn]

      mixins 是一个 link 对象,可以一直传递到子组件

      React6 实战项目1

7、组件的生命周期

      周期分为三个阶段:装载阶段、更新阶段、卸载阶段

      装载阶段(Mounting)分为两个函数 componentWillMount(将要被装载)  componentDidMount(已经被装载)

              componentDidMount 此阶段可写 ajax

              函数 React.unmountComponentAtNode(传一个 DOM 节点) 删除一个组件

      React6 实战项目1

      更新阶段(Updating)分为四个个函数

              shouldComponentUpdate(可以做限制,暂时不太懂为什么写,请指教!

              componentWillUpdate(组件将要更新,做处理)

              componentDidUpdate(组件已经更新,可以进行dom操作)

              componentWillReceiveProps(放到子组件,子组件将接受更新)

      React6 实战项目1

8、Mixin

      与组件的生命周期密切相关,目的是让不同的组件共用一些逻辑,不用重复的写一些相似的代码

      React6 实战项目1