在使用Redux的前提下,从在页面上触发修改到你看到的页面变化,中间发生了什么
Redux首先使用的是观察者模式,将数据统一管理,与React直接调用setState不同的是只有使用了connect方法在数据中心设置了观察者的组件以及其传递了值的子组件才会接收到新的props,从而调用React更新机制。数据的修改是通过dispatch一个action,在reducer中返回新的state对象来修改源数据。
js中this引用为什么会变成undefined,强制绑定this引用的方式有哪几种,分别写出实例代码。
不通过对象调用,直接使用某含有this的方法时会出现this为undefined,强制绑定的方法有call(obj, arg1, arg2)和apply(obj, arg1, arg2)方法。
在使用React时,如何获得某个input的值?
可以设置某个input的click属性为父组件自定义的方法,如:
1
2
3changeTest = (text) => {
console.log(text);
};1
2<input onChange={(event) => {
this.changeTest(event.target.value)}}/>或
1
2
3changeTest = (event) => {
console.log(event.target.value);
};1
<input onChange={::this.changeTest}/>
常见的需要重构的坏味道有哪些?以及他们的影响?
- 代码重复:难以维护,需要修改时要重复修改多处;
- 方法过长:难以阅读,一个方法做的事情太多,阅读起来比较困难;
- 较复杂的类:难以理解,一个类需要做很多的事情就会出现很多变量和方法,比较难理解
- 参数过长:难以使用,一个方法需要的参数较长,使用的时候就需要要多的依赖项;
- 不名义的变量名:难以理解,当看到某个变量名,应该以名字就知道其意义,而不是简单的当作临时变量随意取名。