昨天在家用 React 做了一个简单的 TodoList,之前用 Vue 也实现过(传送门)。
一模一样的界面和功能,相较之下,React 的代码量是 Vue 的两倍。在列表渲染、事件绑定、组件通信等方面,React 都不如 Vue 优雅:
- React 列表渲染需要使用数组的
map
方法,Vue 只需v-for
就行 - React 绑定点击事件是这样的:
onClick={this.handleClick.bind(this)}
,
Vue 绑定点击事件是这样的:@click='handleClick'
- React 生命周期函数:
挂载 | 更新 | 销毁 |
---|---|---|
componentWillMount | componentWillUpdate | componentWillUnmount |
componentDidMount | shouldComponentUpdate | |
componentWillReceiveProps | ||
componentDidUpdate |
Vue 生命周期函数:
创建 | 挂载 | 更新 | 销毁 |
---|---|---|---|
beforeCreate | beforeMount | beforeUpdate | beforeDestory |
created | mounted | updated | destoryed |
相较之下,React 函数名过长、没有规律、难以记忆,Vue 则将组件的生命周期分为 4 个阶段,函数名称简短、清晰。
不过 React 问世早,出身高贵,根红苗正,在 UI 框架方面有蚂蚁金服的 AntDesign 和谷歌的 MaterialDesign 可供选择。Vue 初生牛犊不怕虎,乱拳打死老师傅,期待 Vue 超越 React 的一天。