免费的舆情网站,网站定制费用,网站内容结构,广告设计公司设计收费标准回答思路#xff1a;语法区别--获取props区别--状态的区别--this的区别--Mixins的区别
注释#xff1a; 工厂函数#xff1a;是一种函数式编程的概念#xff0c;用于创建和返回其他函数。在React中#xff0c;工厂函数常用于创建组件。工厂函数接受一些参…回答思路语法区别--获取props区别--状态的区别--this的区别--Mixins的区别
注释 工厂函数是一种函数式编程的概念用于创建和返回其他函数。在React中工厂函数常用于创建组件。工厂函数接受一些参数并返回一个用于渲染UI的React组件
1.语法区别:createClass本质上就是一个工厂函数extends是ES6新写法在方法的定义和静态属性的声明上有差别
如
createClass中方法之间要用逗号隔开
var MyComponent React.createClass({render: function() {return divHello, World!/div;},componentDidMount: function() {console.log(Component mounted);},statics: {getData: function() {console.log(Fetching data);}}
});class MyComponent extends React.Component {render() {return divHello, World!/div;}componentDidMount() {console.log(Component mounted);}static getData() {console.log(Fetching data);}
}2.获取props区别
(1)React.createClass通过proTypes对象和getDefaultProps()方法来设置和获取props
(2)React.Component通过设置属性propTypes和defaultProps
3.状态的区别createClass通过getInitialState()方法返回一个包含初始值的对象而React.Component直接通过constructor设置初始状态
4.this的区别React.createClass会正确绑定this但是React.Component不会自动绑定this需要用箭头函数
5.Mixins的区别React.createClass在在创建组件时可以添加一个mixins的属性并将可混合的类的集合以数组的形式赋给mixins而React.Component不直接支持mixins需要安装库npm install react-mixin