1、react初始

一、一些基础概念

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输入框的值发生改变时触发

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容

  • 本笔记基于React官方文档,当前React版本号为15.4.0。 1. 安装 1.1 尝试 开始之前可以先去co...
    Awey阅读 7,716评论 14 128
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,840评论 1 18
  • 最近看了一本关于学习方法论的书,强调了记笔记和坚持的重要性。这几天也刚好在学习React,所以我打算每天坚持一篇R...
    gaoer1938阅读 1,687评论 0 5
  • React.js 小书学习 之 【使用 JSX 描述 UI 信息】 从 JSX 到页面 过程图解:JSX 到页面过...
    zdlucky阅读 1,281评论 0 20
  • 反思下近期不经意间犯的几件说大也小的错误,好好内省,唤醒身体内谨小慎微的脑神经,在这里做好文字买卖,类似的事件日后...
    二石兄阅读 1,065评论 0 1