Vue 通过其响应机制触发组件重新渲染,因此开发人员可以直接改变状态。Vue 会检测状态变化并触发组件重新渲染。
React 通过手动触发组件重新渲染setState
,React 将区分 VDOM 以检查它是否应该重新渲染。建议开发人员不要直接改变状态,而是创建一个新的状态来替换原始状态,这样原始状态和新状态就可以shallowEqual
有效地进行。(不可变方法)。
例如,有如下状态:
state = { a: 1, b: 2 }
// mutate state in Vue
state.a = 3
// mutate state in React
this.setState({...state, a: 3 })
似乎反应机制更直观,可以编写更少的代码。我想知道这两种方法之间的优缺点是什么?我应该选择哪种方案而不是另一种方案?