一、一些基础概念
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. Selenium 3----鼠标、键盘操作常用方法

    [鼠标] 在 WebDriver 中, 关于鼠标操作的方法封装在 ActionChains 类中. ActionChains 类提供了鼠标操作的常用方法: perform(): 执行所有 Action ...

  2. laravel整合vue 多入口解决

    2018年8月10日23:10:29 其实整合是挺简单,因为laravel本身就准备的挺好了 laravel 版本5.6   注意php cli是web是不一样的 这个需要设置环境变量 ,php需要7 ...

  3. 深入理解iostat

    前言 iostat算是比较重要的查看块设备运行状态的工具,相信大多数使用Linux的同学都用过这个工具,或者听说过这个工具.但是对于这个工具,引起的误解也是最多的,大多数人对这个工具处于朦朦胧胧的状态 ...

  4. oo第三次总结

    一.(1)规格化设计的大致发展历史 20世纪60年代,随着大容量.高速度的计算机出现,以及大量语言的新增和软件的不可靠,爆发了所谓的“软件危机”.而针对这个问题,人们提出了规格化设计的解决方法.通过把 ...

  5. 10 Project 1: Erste Schritte in Python

    10 Project 1: Erste Schritte in PythonAnimationIn den Projekten werden sie nicht nur statische Objek ...

  6. DDoS攻击及防御措施

    SYN flood 伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端会返回SYN/ACK 包,因为伪造的IP并不会答应,服务器端并没有收到伪造的IP的回应,会重试3~5次并等待一个 ...

  7. VUE 参数共享问题

    **标黄 export default { data () { return { msg: "这是一个变量", xx:"", } }, mounted : fu ...

  8. ACL(Access Control List)

    一.ACL的简介 ACL(Access Control List 访问控制列表)是路由器和交换机接口的指令列表,用来控制端口进出的数据包.ACL的定义也是基于每一种被动路由协议的,且适用于所有的被动路 ...

  9. main.js中封装全局登录函数

    1. 在 main.js 中封装全局登录函数 通过 vue 对象的原型扩展,可以扩展一个函数,这样这个函数就可以在每一个界面通过类似指向对象的方式,去访问这个函数. 如下是 main.js 扩展的函数 ...

  10. 2019王小的Java学习之路

    文章背景身边有个非常要好的朋友王某某,因为是发小的关系,之后文章统称为王小. 大专毕业后 顺利 的被安排进了某某工厂工作,工作一段时间后,尽管工作比较轻松,却无法忍受终日的流水线生活,经过我的介绍,决 ...