一、一些基础概念
1、框架:基于整个项目的
2、库:在某个模块中单独使用,轻量级的
在vue中,DOM的操作时DOM指令调用js
在react中,所有的DOM 渲染都是由JS完成的
组件基于视图
模块基于代码
当前类的函数都是当前类的原型函数
 
类的原型函数可以访问类的公有属性 state
state 和proper都是对象、类的公有属性
{this.state.showType=='login'?<Login />:<Register/>}
 
二、react脚手架的安装方式
1、安装脚手架环境(在超级管理员权限下)
sudo npm install -g create-react-app
2、路径改变到桌面
cd Desktop
3、在桌面文件下创建项目(在超级管理员权限下)
sudo create-react-app my-app
4、将路径切换到创建的当前文件夹下
cd my-app/
5、运行项目
npm start
 
 
三、 ReactDOM.render()方法
要将React元素渲染到根DOM节点中,我们通过把它们都传递给 ReactDOM.render() 的方法来将其渲染到页面上
ReactDOM.render有2个参数,第一个为即将要渲染的新的DOM元素
第二个为新节点的父级标签(js原生的节点对象)
ReactDOM.render(
<h1>hello world</h1>,
root
);
也可以创建一个 React.Component 的 ES6 类,该类封装了要展示的元素(return的作用是将要展示的内容返回出去)
四、react渲染方式
React将所有的基于React的DOM渲染都封装在了JS中;
* (1)直接在ReactDOM.render()函数的第一个参数的位置写DOM
* (2)用一个函数(首字母大写)封装,再调用(单标签)
* (3)用类封装,这个类要继承React的Component类,之后直接调用(并没有从类中实例化对象,要关注this的指向)
五、JSX语法
<!--可以在JSX语法中用{}包裹js表达式-->
JSX 用来声明 React 当中的元素
在 JSX 中使用表达式
你可以任意地在 JSX 当中使用 JavaScript 表达式,在 JSX 当中的表达式要包含在大括号里。
六、props、state
props将外界的参数传给当前类从其父类继承到的某个函数中
//可以在调用组件时向组件传多个参数,但是这些参数都是以键值对的形式在props中被接收
//当前组件使用的所有的变量,在函数中用this.state的方式访问
this.state={
name:"rose",
age:18,
sex:"男"
}
react提供的setState函数,通过这个函数更改state的状态值,这个更改就可以动态的渲染到DOM节点上
this.setState对state中的数据进行更改
this.setState({
showType:type
})
七、钩子函数
componentDidMount
这是一个生命周期中的钩子函数,也是这个类的一个原型函数,可以在这个函数中访问这个类的原型函数和公有属性(state和props都是公有属性)
//在第一次渲染后调用(挂载后)
八、传参方法
在事件中调用函数时传参
{/*传参方式1*/}
点击事件触发时,调用函数fn1的bind方法,可以传递多个参数,在函数fn1中接收,事件对象e不需要传递
但是需要在函数中接收
<button onClick={this.fn1.bind(this,4,6)}>点击</button>
fn1(num1,num2,e){
console.log(num1,num2,e)
}
{/*传参方式2*/}
箭头函数的形式,事件对象为最后一个参数
<button onClick={ (e) => this.fn1(11,22,33, e)}>点击</button>
用bind方式
(1)触发事件时调的并不是类的原型函数
(2)调的是类的原型函数调了bind之后的返回值
(3)调返回值时相当于调了这个原型函数
(4)会将这个原型函数中的this替换成bind的第一个参数(一般情况下这个参数都是this)
九、React的条件渲染:
// react没有提供条件渲染指令,得通过分支语句在render函数渲染之前,做判断,调用不同的组件进行渲染
十、表单
用 onChange 事件来监听 input 的变化,并修改 state。
// 当input输入框的值发生改变时触发

react初始的更多相关文章

  1. react初始(1)

    前言:react框架的出现是因为Facebook在建设Instagram交流平台的时候要处理大量的数据流,但是行业流行的MVC框架并不能适合Facebook公司的要求,他们就组织了自己的人力来开发re ...

  2. react初始(2)

    既然我开始了react的学习,就没有停下来的理由了,我应该很幸运我还有这个时间去学习react,我不认为我聪明,但是我认为我够努力.我先在或许是一个不知道未来该是怎样的人,我们的迷茫和无知源于你不去接 ...

  3. [转] React同构思想

    React比较吸引我的地方在于其客户端-服务端同构特性,服务端-客户端可复用组件,本文来简单介绍下这一架构思想. 出于篇幅原因,本文不会介绍React基础,所以,如果你还不清楚React的state/ ...

  4. React 同构思想

    作者:yangchunwen React比较吸引我的地方在于其客户端-服务端同构特性,服务端-客户端可复用组件,本文来简单介绍下这一架构思想. 出于篇幅原因,本文不会介绍React基础,所以,如果你还 ...

  5. 搭建一个简单的React项目

    我是使用了create-react-app来搭建的基本框架,其中的原理和vue-cli差不多的脚手架.(当然也可以自己配置项目目录,这里我偷了一下懒) npm install -g create-re ...

  6. 二、React初体验之React组件创建

    (中间因为应付各种考试,处理其他事情,隔了好时间没更新,现在终于有时间了,续上!) 本文为React初始体验,因此先不考虑文件如何组织,尽量以最简单的方式让大家了解React其中的原理. 在创建组件( ...

  7. 【转】Virtual DOM

    前言 React 好像已经火了很久很久,以致于我们对于 Virtual DOM 这个词都已经很熟悉了,网上也有非常多的介绍 React.Virtual DOM 的文章.但是直到前不久我专门花时间去学习 ...

  8. 初学React,setState后获取到的thisstate没变,还是初始state?

    问题:(javascript)初学React,setState后获取到的thisstate没变,还是初始state?描述: getInitialState(){ return {data:[]}; } ...

  9. 初始React Native

    1.何是React Native: React-Native是:Facebook 在2015年初React.js技术研讨大会上公布的一个开源项目.支持用开源的JavaScript库React.js来开 ...

随机推荐

  1. 使用MDI 和 XtraTabbedMdiManager 后 选项卡切换后Ribbon 合并后不选中MDI子窗...

    使用MDI 和 XtraTabbedMdiManager 后 选项卡切换后Ribbon 合并后不选中MDI子我这里是 继承 XtraTabbedMdiManager  所以,是重载的  OnSelec ...

  2. export和export default

    在  vue中 export  变量名不能识别,只能export default 变量,import 随便取名,不需要{}

  3. SaaS的先鋒:多合一讯息处理器

    在Rocketbots,我们的使命是改善企业与客户之间的关係.全球有超过40亿个消息传递帐户,人们花在上线对话的时间比任何其他活动都多.这种转变,创造了一个更高效及贴身的沟通.随著消费者越来越多要求, ...

  4. FPGA小例子

    AND ---与门:OR --- 或门:INV --- 非门:NAND --- 与非门:NOR --- 或非门:XOR --- 异或门:XNOR ---同或门:MUX --- 数据选择器: 1.使用一 ...

  5. instrument 之 core animation

    1.Color Blended Layers 图层混合 需要消耗一定的GPU资源,避免设置alpha小于1,省去不必要的运算 2.Color Hits Green and Misses Red 光栅化 ...

  6. 好的UI管理后台

    1,https://www.v2ex.com/t/513539 - https://github.com/a54552239/projectManage

  7. what's the 白盒测试

    what's the 白盒测试 白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的.白盒要考虑测试 ...

  8. 友金所招聘Java工程师面试题

    友金所是一家位于深圳南山科技园的P2P网贷公司,用友集团控股.该公司采用渐进式的问答面试,没有笔试题.比如面试者说熟悉多线程,面试官就问哪些方式解决并发:面试者说采用Synchronized或者Ree ...

  9. 806. Number of Lines To Write String

    806. Number of Lines To Write String 整体思路: 先得到一个res = {a : 80 , b : 10, c : 20.....的key-value对象}(目的是 ...

  10. WIN7远程桌面连接--“发生身份验证错误。要求的函数不受支持”

    故障现象:WIN7发现远程桌面无法连接了,报“发生身份验证错误.要求的函数不受支持”的错误: 解决办法:开始菜单->运行gpedit.msc 打开配置项:计算机配置>管理模板>系统& ...