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 })
Run Code Online (Sandbox Code Playgroud)
似乎反应机制更直观,可以编写更少的代码。我想知道这两种方法之间的优缺点是什么?我应该选择哪种场景?