React的第二种使用方法----脚手架方式
一、React的第二种使用方法-----脚手架
1.前提:Node.js >8.10
2.下载全局脚手架工具
npm i -g create-react-app
3.运行全局脚手架工具,创建空白项目
create-react-app 项目名
4.进入空白项目,运行开发服务器
cd 项目名
npm start
5.客户端访问测试
http://127.0.0.1:3000
二、React中的数据绑定
1.内容绑定 ------ <p>{表达式}</p>
2.属性绑定 ------ <p title="{表达式}"></p>
3.指令绑定------- React中没有指令
4.事件绑定 ------ 与其他框架区别较大!
5.双向数据绑定-------与其他框架区别较大!
React中的事件句柄不同于HTML中的事件句柄(handler)
onclick --------onClick
ondbclick ------- onDoubleClick
onmouseover -------- onMouseOver
onblur -------- onBlur
.....
Vue.js中的事件绑定 Angular中的事件绑定 React中的事件绑定
<p @click="f2"></p> <p (click)="f2()"></p> <p onClick="{this.f2}"></p>
<p @click="f2()"></p>
总结:React中事件绑定需要注意:
1.事件句柄名称必须用"小驼峰命名法"
2.事件处理函数不能用引号
3.事件处理方法前必须加{ }
4.当前class内部的方法做事件处理方法,则必须加 this
5.事件处理方法名后不能加( )
面试题1:React中事件处理方法中为什么this默认指向undefined?
JSX中,事件处理方法赋值时不是函数调用,而是函数的引用赋值-------- this指向不再
指向当前组件对象!而是指向当前ES6模块中的全局this-----值为undefind
面试题2:如何解决React事件处理方法中无法使用this的问题?------用三种方法
①用匿名函数封装立即调用的函数
f2(){
console.log(this);
}
<p onClick={ ()=>{this.f2()} }></p>
②用箭头函数代替function匿名函数
f2 = ( )=>{
console.log(this);
}
<p onClick={ this.f2 }></p>
③在构造方法中固定this的指向
constructor(){
super()
this.f2 = this.f2.bind( this )
}
f2(){
}
<p onClick={ this.f2 }></p>
三、React中组件里的Model数据
React中class组件可以声明两种形式的Model数据:
①class属性------可以一次性绑定到模板,数据再变则不会再次修改视图模板.
class MyC02{
count = 3
}
②组件状态数据--------可以绑定到模板,未来Model变则View变
使用步骤:
1)创建状态数据
constructor(){
super()
this.state = { age:20 }
}
2)绑定状态数据
<p>{this.state.age}</p>
3)修改状态数据
this.setState({
age:21
})
注意:①setState()会修改虚拟DOM树
②setState()不会清空已有的状态数据,只会把新修改的数据合并到已有数据中.
③setState()是异步操作,不会立即执行-----底层会把连续的多次setState合并为一次操作,
以减少虚拟DOM/真实DOM的修改;如果希望看到修改后的值,可以使用setState({ },callback)中的回调函数.
④不推荐直接在setState中使用之前的this.state数值,使用临时变量代替
四、React中的双向数据绑定
Vue.js中的双向数据绑定 Aangular中的双向数据绑定 React中的双向数据绑定
---------------------------------------------------------------------------------------------------------------
v-model [(ngModule)] 受控组件
提示:双向数据绑定只能用于"表单元素",如input、textarea、select等
方向1:Model => View(value)
constructor(){
this.state ={ uname:'' }
}
<input value={this.state.uname}/>
至此,输入框中会呈现状态数据,但是无法再修改------受控组件
方向2:View(value) => Model
React的第二种使用方法----脚手架方式的更多相关文章
- springBoot第二种配置文件yaml书写方式及读取数据、整合myBatis和整合junit
一.yaml文件格式:key-value形式:可以表示对象 集合 1.语法:key:value 冒号后面必须跟一个空格再写value值 key1: key2: key3:value 2.属性取值:a. ...
- tornado 第二种路由方法(装饰器)
#!/usr/bin/env python # _*_coding:utf-8 _*_ import tornado.ioloop import tornado.web application = t ...
- 第二种BitBand操作的方式 - 让IDE来帮忙算地址
要使用Bitband来訪问外设,一定要得出相应的映射地址.人工计算肯定是不靠谱的,并且也没人想这么干.因此能够通过Excel,拉个列表来计算.想想,这也是一个不错的招数.可是后来想想,还是嫌麻烦,毕竟 ...
- SpringMVC实现操作的第二种方式
一: 运行效果: 点击提交之后显示效果 二: (1).web.xml <?xml version="1.0" encoding="UTF-8"?> ...
- HashMap两种遍历数据的方式
HashMap的遍历有两种方式,一种是entrySet的方式,另外一种是keySet的方式. 第一种利用entrySet的方式: Map map = new HashMap(); Iterator i ...
- CSS当中color的四种表示方法
这是我的第一篇博客,所以写的东西会比较简单. css当中,好多地方都会用到color属性,用来使html内容丰富多彩,例如:background-color:border-color: 第一种表示法使 ...
- 【转载】JavaWeb之DBUtils QueryRunner类对数据表的增、删、查(8种结果集处理方式)、改操作
一.使用QueryRunner类,实现对数据表的 insert delete update package com.shuhuadream.queryrunner; import java.sql.C ...
- 09 Python两种创建类的方式
第一种比较普遍的方式: class Work(): def __init__(self,name): self.name = name w = Work('well woker') 这样就简单创建了一 ...
- java单例的几种实现方法
java单例的几种实现方法: 方式1: public class Something { private Something() {} private static class LazyHolder ...
随机推荐
- Manjaro Linux 入门使用教程
Manjaro 初体验 Manjaro 是一款基于 Arch LInux 的自由开源发行版,它吸收了 Arch Linux 优秀丰富的软件管理,同时提供了稳定流畅的操作体验.优雅简单是它的追求,稳定实 ...
- Scala的自定义类型标记
Scala的自定义类型标记 Scala中有很多千奇百怪的符号标记,看起来是那么的独特,就像是一杯dry martini-好像黑夜中的萤火虫,那么耀眼,那么出众. 好了言归正传,这一篇文章我们会讲一下S ...
- Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm
第五六七章 alias 查看系统别名 67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...
- oracle获取表字段及表注释的相关操作
一.获取表字段: select * from user_tab_columns where Table_Name='用户表' user_tab_columns 为当前用户的columns,除此之外还有 ...
- Android xUtils3.0使用手册(一)- 基础功能使用
xUtils3 其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是苦于没有完整的使用手册,下面是使用中的一些总结,不断完善. xUtils 版本 3.3.36 jar包下载地址 ht ...
- SpringCloud系列之集成Dubbo应用篇
目录 前言 项目版本 项目说明 集成Dubbo 2.6.x 新项目模块 老项目模块 集成Dubbo 2.7.x 新项目模块 老项目模块 参考资料 系列文章 前言 SpringCloud系列开篇文章就说 ...
- Vue Cli 3 打包上线 静态资源404问题解决方案
报错原因:静态资源丢失 解决方案 官方文档https://cli.vuejs.org/zh/config/#vue-config-js baseUrl 从 Vue CLI 3.3 起已弃用,请使用pu ...
- webpack打包多入口配置
在它的entry入口设置多文件入口即可,例: entry: { core: './src/core.js', design: './src/design.js' }, 单一出口输出: output: ...
- 常用的CSS小技巧
实际开发过程中会遇到一些需要用CSS小技巧处理的布局问题,现在分享几个个人工作中遇到的小问题和解决方案. 1.inline元素间的空白间隙 这里要介绍一个神器font-size:0. 如果你写了个列表 ...
- HDU2937 YAPTCHA(威尔逊定理)
YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...