react 杂谈

1 JSX 

a   在JSX中使用js表达式,并且表达式要包含在大括号里

在书写jsx的时候会带上换行和缩进,可以增强代码的可读性,推荐在jsx代码外面括上一个小括号,

防止分号自动插入的bug

b  jsx属性

c  jsx嵌套

d  jsx防注入攻击  : React DOM在渲染之前会默认过滤所有传入的值,确保应用不会被注入攻击

e  Babel 转化器会把JSX转化成一个名为  React.createElement() 的方法调用

2  元素渲染 【元素是构成react应用的最小单位】

a    渲染到 DOM 中使用  ReactDOM.render方法

b     更新元素渲染   更新界面的唯一方法是 创建一个新的元素,然后传入ReactDOM.render

c      React只会更新必要的部分   只会更新渲染文本节点中发生变化的内容

3  组件& props 【组件可以将UI切分成一些独立的,可复用的部件,只需专注构建每一个单独的部件】

a  定义组件  【最简单的方法: js函数定义】 下面为两种不同的方式

b  组件渲染 【React遇到的元素是用户自定义的组件】

tip: 组件名称必须以大写字母开头

c   组合组件 【组件可以在它的输出中引用其他组件】

tip: 组件的返回值只能有一个根元素, 所以需要用<div>来包裹所有的<welcome />元素的原因

d: 提取组件【可以将组件切分为更小的组件】 下面的代码将多个业务逻辑混合在一起,难以维护和复用

e   props的只读性 【所有react组件必须像纯函数使用它们的props】

4    state与生命周期

a   直接更新状态   

b    状态更新可能是异步  

c   状态更新合并

d   数据自顶向下流动

任何状态始终由某些特定组件所有,并且从该状态导出的任何数或UI只能影响

树中下方组件

5   事件处理

a  react事件绑定属性命名采用驼峰写法

b   采用jsx语法需要传入一个函数作为事件处理函数, 而不是一个字符串

c   react 不能使用返回false 的方式组织默认行为,必须明确使用  preventDefault

d  绑定事件this的两种方式

d1:构造函数中绑定

d2: 属性初始化语法

e   向事件处理程序传递参数

e1: 在类组件中定义的监听函数,事件对象e要排在传递参数的后面

6  条件渲染 React中条件渲染和js中的一致  使用js操作符if或条件运算符来创建当前状态的元素

a   if   语句    

b   && 

c     三目运算符

d  阻止组件渲染  隐藏组件   render方法返回null

tip:  组件的render方法返回null 并不会影响该组件的生命周期方法的回调   componentWillUpdate 和 componentDidUpdate 依然可以被调用。

7  列表 & keys

a 数组元素中使用的key 在其兄弟之间应该是独一无二的, 不需要全局唯一

tip: key值一定要放在其环绕数组的上下文中才有意义, key会作为给react的提示, 不会传递给你的组件, 如果

组件中需要使用,用其他属性名显示传递这个值

8   表单

受控组件: 构造一个处理提交表单并可访问用户输入表单数据的函数

eg:  使用input.val()函数可以实时的获取最新的输入框输入,react中可以使用state  获取变化

疑问??? 在html页面中, 不论是input还是select都是自动发生内容变化,可以通过val()获取最新的内容

为什么在react中需要添加监听函数

答案: 在react中,可变的状态通常保存在组件的状态属性中,只能用setState()方法进行更新

b : <input type="file">  该标签value属性只读的,所以它是react中一个非受控组件

9  状态提升    几个组件公用状态数据, 可以将共享的状态提升至他们最近的父组件中管理

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值