React一点点
网上关于React的内容一抹多,我就不献丑了,我简单记录一下,主要是一些编程中不太注意的的点。
React
A JavaScript library for building user interfaces。React是MVC中作用于V的一种库,需要注意它不是一个框架只是一个库。
reacts to state changes,react是对页面状态变化做出反应的意思。
Component
Component is A piece of the UI,React App is Tree of component。组件的概念其实之前就有不过我是从React才开始了解的,即把一个前端应用拆分为一个个的组件。
React.createElement()
没看到有用React但是为什么还需要import React?
因为是JSX到JS这样编译后是需要React.createElement来创建元素的,所以需要引入
1 | // This JSX: |
JSX
JavaScript XML
Why can’t JSX write If-Else
因为 JSX 只是函数调用和对象创建的语法糖,像一下的代码编译后是不合法的JS,没法识别。
1 | // This JSX: |
Arrow Function
为什么箭头函数可以提代bind(this),首先是因为JS中的一个实验特性Static class fields and private static methods,一个箭头函数没有它自己的 this
,不过他使用的是封闭的执行上下文的 this
值。箭头函数在词法上绑定它们的上下文,所以 this
实际上指向最原始的上下文。
所以有个点我们需要明白,bind不是react要求的,而是因为JS的this对象的指向问题导致的。
bind(this)延伸阅读:react-binding-patterns-5-approaches-for-handling-this
setState
它接受一个对象或者函数作为参数,如果你想在 setState
之后使用新的 state
来做后续运算就需要使用到函数。
state 和 setstate:为什么不用直接用this.state.xxx=xxx;而必须用setState才能修改state,因为如果用this.state.xxx=xxx,React无法知道你修改了状态,所以需要调用setState通知到React你修改了状态,然后React会走它那一套更新状态的步奏。
props vs state
共同点:都可以决定组件的行为和显示形态。
react-state-vs-props-explained:
state可以理解为函数的局部变量,所以外部是不能访问和修改的,只有内部能维护。
props它是组件间对话的方式,让外部(父组件)数据和行为传入组件(子组件)内部达到更新内部组件的目的。
controlled vs uncontrolled
简单的理解了一下,受控组件这儿受控其实指的是通过props来控制data,非受控通常说的是自己内部维护data,大多数情况下我们都用的是受控组件
What are controlled components and uncontrolled components?
lifecycle hooks