一、一些基础概念
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. char

    1 char是多少位的 2 java用的是什么方式表示字符 3 Unicode是用多少位表示的 1的答案是16位的,2的答案是Unicode,3的答案是16位 值得注意的是,2的答案并不是utf-8 ...

  2. CodeForces #549 Div.2 D. The Beatles

    题目 解题思路 关键是要 ,找出L 的组合,然后遍历L的组合,用最大公约数就可以算出来当前L的值要停多少次 怎么找出L的组合呢?饭店是每隔K 有一个,是重复的,我们只需要算出第一个饭店两侧,起点和停顿 ...

  3. Java中“==”和“equals()”的区别

    “==”比较的是变量所指向的对象,当S1在内存中定义以后,再定义s2的时候s2所指向的值是定义s1时候所创建的,而不是又在内存创建了一个“Monday”. “equals”比较的是对象所指向的值,所以 ...

  4. TCP/IP详解--拥塞控制 & 慢开始、拥塞避免、快重传和快恢复。

    https://www.cnblogs.com/losbyday/p/5847041.html 膜拜大佬,看完了就会

  5. fpga xilink 电平

  6. Sessions Hang on row cache lock

    Sessions Hang on "row cache lock" (dc_objects) While Creating & Dropping a Table Concu ...

  7. delphi odbc远程连接sqlserver

    ip设置格式xx.xx.xx.xx,port ip和端口号之间是逗号

  8. VUE-007-通过路由 router.push 传递 query 参数(路由 name 识别,请求链接显示参数传递)

    在前端页面表单列表修改时,经常需要在页面切换的时候,传递需要修改的表单内容,通常可通过路由进行表单参数的传递. 首先,配置页面跳转路由.在 router/index.js 中配置相应的页面跳转路由,如 ...

  9. es6下 vue实例属性template不能使用

    esm模式下 不能使用template,需要引入非esm的vue.js,查看vue源码的包的dist目录下 文件标有esm是支持ems,没有标记,就是不支持(这个知识,怎么说了,应该属于webpack ...

  10. 美团笔试(web前端)

    分为3部分: 1.逻辑推理.行测.找规律: 2.html css javascript的简单的选择题,以及数据结构,操作系统方面的知识: 3.两道编程题,第一道题关于竞赛报名,有限制的分组,输入N和M ...