我又来标题党了,最近感觉,使用ReactJS都是高手,太基础的东西好像多说也没意思了,今天还是来点(湿嗒嗒的)干货吧!
ES6是JavaScript的未来(其实已经到来了),有了很多新的语法(糖?),给我们编码带来了不少方便,随意还是与时俱进用ES6和Webpack创造新的世界吧。对了顺便说一下,ES2015就是ES6,而ES7应该算ES2016?
ReactJS中Component用ES6的Class应该怎么写呢?
// 普通的写法
var Hello = React.createClass({
getDefaultProps: function() {
return {name: "Default Props"};
},
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
// ES6的写法
class Hello extends React.Component {
constructor(props) {
super(props); // 只有调用过super后才能使用this
this.state = {name: this.props.initialName}; // 直接给state赋值,代替getInitialState()
}
render() {
return <div>Hello {this.state.name}</div>;
}
}
Hello.defaultProps = {initialName: "Default Props"};
ES7中更厉害,直接作为属性写就行,不过实在太新了,暂时还是不写了避免混淆。
ES6的Component怎么用Mixin呢?
文档说了,ES6的语法暂时不支持Mixin,不过我们有张良计,虽然麻烦了一点~
import React from 'react/addons';
import ReactMixin from 'react-mixin';
export default class Signup extends React.Component {
render() {
}
}
ReactMixin(Signup.prototype, React.addons.LinkedStateMixin);