Home  >  Article  >  Web Front-end  >  React.js props

React.js props

php中世界最好的语言
php中世界最好的语言Original
2018-03-13 14:51:271766browse

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.

The parent component passes the value to the child component

<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: &#39;哈哈&#39;}

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&#39;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([&#39;News&#39;, &#39;Photos&#39;]),  // 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&#39;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&#39;t `console.warn` or throw, as this
  // won&#39;t work inside `oneOfType`.
  customProp: function(props, propName, componentName) {    if (!/matchme/.test(props[propName])) {      return new Error(        &#39;Invalid prop `&#39; + propName + &#39;` supplied to&#39; +        &#39; `&#39; + componentName + &#39;`. Validation failed.&#39;
      );
    }
  },  // 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&#39;s key.
  customArrayProp: PropTypes.arrayOf(function(propValue, key,       componentName, location, propFullName) {    if (!/matchme/.test(propValue[key])) {      return new Error(        &#39;Invalid prop `&#39; + propFullName + &#39;` supplied to&#39; +        &#39; `&#39; + componentName + &#39;`. Validation failed.&#39;
      );
    }
  })
 };

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


to the label Add ref

<input ref=&#39;submitButton&#39; type="button" value=&#39;提交&#39; onClick={() => this.changeUserInfo(99)}/>

When you want to get the dom, get it through this.refs.xxx

this.refs.submitButton.style.color = &#39;red&#39;;

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:

Routing parameters of Vue.js

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn