Vue React 简单对比

/VueReact
单文件直接引入vue.jsreact.js + react-dom.js + babel.js
虚拟DOM
虚拟DOM区域(挂载区域)el 参数值ReactDOM.render() 第二个参数值
数据驱动
Model数据源初始化,定义在data:{} 或 data () { return {} }里在state里 constructor () { this.state = {} }
数据渲染{{ }} 插值渲染 支持表达式JSX { } 表达式
列表渲染v-forJSX里生成元素集合 {this.state.arr.map((item,index)=><li key={index}>{item}</li>)}
条件渲染v-if{this.state.show? <h1>条件渲染</h1> : null}
动态绑定v-bindtitle={this.state.title}
数据更新重新赋值 this.id = xxx;/ this.$set()this.setState({id:xx}) 更新数据
指令×
添加classclass / :classclassName=”red”
动态切换class:class=”[show? ‘class1’: ‘class2’]”className={this.state.show ? “class1” : “class2”}
style行间style / :styleJSX写法 style={{color:”pink”}}
ref
事件写法@click=”clickFn”onClick={this.clickFn.bind(this)}
事件处理函数methods: {}里与render(){} 方法同级
生命周期钩子函数created() mounted() 等componentDidMount() componentDidUpdate() 等
创建组件Vue.component全局 / components:{} 局部function组件 / class组件
组件定义规则1.kebab-case (短横线分隔命名) 2.PascalCase (大驼峰式)为了区分原生标签,组件必须大写
组件特点.vue文件 分html、js、css三块all in js
数据流向单向数据流单向数据流
数据双向绑定v-model无 (但可以自己实现 绑定value值 + onchange事件更新value值)
监听数据变化watchgetDerivedStateFromProps()
父组件向子组件传值props传值 – 需要在子组件接收props:[‘xx’],然后就可以使用xx值props传值 – 直接使用this.props.xx 取到值
子组件向父组件传值子组件this.$emit触发父组件事件子组件this.props.xx 触发父组件事件
路由vue-routerreact-router
状态管理vuexreact-redux
修改状态使用 mutations使用reducer纯函数
    原文作者:meta
    原文地址: https://segmentfault.com/a/1190000020078903
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞