Home > Article > Web Front-end > React.js props
This time I will bring you the props of React.js. What are the things to note when using the props of React.js?The following is a practical case, let’s take a look.
<Son userid={123}/>Receive the value passed by the parent component in the Son component
<p>接收到的父页面的属性 -- userid: {this.props.userid} username:{this.props.username}</p>Of course, you can also set the parameters to be passed on the Son page Types and default values
// 给属性设置类型BodyIndex.propTypes = { // isRequired 必须的参数 userid: React.PropTypes.number.isRequired, username: React.PropTypes.string }// 设置默认值BodyIndex.defaultProps = { username: '哈哈'}For details on setting the type, please refer to the official documentation
MyComponent.propTypes = { // You can declare that a prop is a specific JS primitive. By default, these // are all optional. optionalArray: PropTypes.array, optionalBool: PropTypes.bool, optionalFunc: PropTypes.func, optionalNumber: PropTypes.number, optionalObject: PropTypes.object, optionalString: PropTypes.string, optionalSymbol: PropTypes.symbol, // Anything that can be rendered: numbers, strings, elements or an array// (or fragment) containing these types.optionalNode: PropTypes.node,// A React element.optionalElement: PropTypes.element, // You can also declare that a prop is an instance of a class. This uses // JS's instanceof operator. optionalMessage: PropTypes.instanceOf(Message), // You can ensure that your prop is limited to specific values by treating // it as an enum. optionalEnum: PropTypes.oneOf(['News', 'Photos']), // An object that could be one of many types optionalUnion: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.instanceOf(Message) ]), // An array of a certain type optionalArrayOf: PropTypes.arrayOf(PropTypes.number), // An object with property values of a certain type optionalObjectOf: PropTypes.objectOf(PropTypes.number), // An object taking on a particular shape optionalObjectWithShape: PropTypes.shape({ color: PropTypes.string, fontSize: PropTypes.number }), // You can chain any of the above with `isRequired` to make sure a warning // is shown if the prop isn't provided. requiredFunc: PropTypes.func.isRequired, // A value of any data type requiredAny: PropTypes.any.isRequired, // You can also specify a custom validator. It should return an Error // object if the validation fails. Don't `console.warn` or throw, as this // won't work inside `oneOfType`. customProp: function(props, propName, componentName) { if (!/matchme/.test(props[propName])) { return new Error( 'Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Validation failed.' ); } }, // You can also supply a custom validator to `arrayOf` and `objectOf`. // It should return an Error object if the validation fails. The validator // will be called for each key in the array or object. The first two // arguments of the validator are the array or object itself, and the // current item's key. customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) { if (!/matchme/.test(propValue[key])) { return new Error( 'Invalid prop `' + propFullName + '` supplied to' + ' `' + componentName + '`. Validation failed.' ); } }) };The Son component passes the properties passed from the parent component to the grandchild component
Through the expansion
operation Symbol {...this.props}, pass all the properties passed from the parent component to its own child component (grandchild component) id={1234} is passed by the Son component itself to the grandchild component Attributes
<GrandSon {...this.props} id={1234}/>Call the attributes passed from the Son component in the grandson component
<p>{this.props.userid} {this.props.username} {this.props.id}</p>refs: It is the only reliable way to access the DOM node inside the component
<input ref='submitButton' type="button" value='提交' onClick={() => this.changeUserInfo(99)}/>When you want to get the dom, get it through this.refs.xxx
this.refs.submitButton.style.color = 'red';Note:Do not call Refs before render or render; Don’t abuse Refs, if you can’t use it, don’t use it!!!I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website! Recommended reading:
Custom directive directive of Vue.js
Vue.js to js implementation transition
The above is the detailed content of React.js props. For more information, please follow other related articles on the PHP Chinese website!