概要

image.png

属性的介绍

image.png
image.png
image.png

属性的用法

image.png
image.png
image.png
image.png

示例代码

  1. //ES6 写法
  2. "use strict";
  3. class HelloMassage extends React.Component {
  4. render() {
  5. //数组的调用方法
  6. // var commentNode = this.props.name.map(function(datavalue, datakey) {
  7. // return <div key={datakey}>Hello,{datavalue}!</div>
  8. // });
  9. return (
  10. //数组的调用方法
  11. // <div>{commentNode}</div>
  12. <h1 className="h1">{this.props.name}</h1>
  13. )
  14. }
  15. }
  16. //通过变量传递
  17. var data = "通过一个变量传递属性";
  18. ReactDOM.render(
  19. // <HelloMassage name="xiaochuan" />,//xiaochuan
  20. // <HelloMassage name={123} />,//123
  21. // <HelloMassage name={"孙小川"} />, //孙小川
  22. // <HelloMassage name={["1","2","3"]} />, //需要在上面使用 map 方法映射键值对
  23. //数组输出:Hello, 1! Hello, 2! Hello, 3!
  24. <HelloMassage name={data} />,
  25. document.getElementById("example")
  26. );
  1. //ES5 写法
  2. var HelloMassage = React.createClass({
  3. render: function() {
  4. return (
  5. // <div>{this.props.name}</div>
  6. //调用一个对象多个属性的写法
  7. <div>Hello,{this.props.name1},{this.props.name2}</div>
  8. );
  9. }
  10. });
  11. //传递一个对象
  12. var props = {
  13. name1: "xiaochuan",
  14. name2: "xiaoming"
  15. };
  16. ReactDOM.render(
  17. // <HelloMassage name="xiaochuan" />,
  18. //传递一个对象的写法
  19. <HelloMassage {...props} />, //Hello,xiaochuan,xiaoming
  20. document.getElementById("example")
  21. );

默认属性的 & 属性校验器

  1. //ES6 写法
  2. "use strict";
  3. class HelloMassage extends React.Component {
  4. render() {
  5. //数组的调用方法
  6. // var commentNode = this.props.name.map(function(datavalue, datakey) {
  7. // return <div key={datakey}>Hello,{datavalue}!</div>
  8. // });
  9. return (
  10. //数组的调用方法
  11. // <div>{commentNode}</div>
  12. // <h1 className="h1">{this.props.name}</h1>
  13. //测试默认属性
  14. <h1>{this.props.title}</h1>
  15. )
  16. }
  17. }
  18. //通过变量传递
  19. var data = "通过一个变量传递属性";
  20. //属性校验器,表示必须是 string
  21. HelloMassage.propTypes = {
  22. title: React.PropTypes.string,
  23. };
  24. //设置默认属性
  25. HelloMassage.defaultProps = {
  26. title: "321"
  27. };
  28. ReactDOM.render(
  29. // <HelloMassage name="xiaochuan" />,//xiaochuan
  30. // <HelloMassage name={123} />,//123
  31. // <HelloMassage name={"孙小川"} />, //孙小川
  32. // <HelloMassage name={["1","2","3"]} />, //需要在上面使用 map 方法映射键值对
  33. //数组输出:Hello, 1! Hello, 2! Hello, 3!
  34. // <HelloMassage name={data} />,
  35. //测试默认属性
  36. <HelloMassage />,
  37. document.getElementById("example")
  38. );
  1. //ES5 写法
  2. var HelloMassage = React.createClass({
  3. //设置默认属性
  4. getDefaultProps: function() {
  5. return {
  6. name: "123"
  7. // name: 1//由于在下面指定了类型为 string 这里如果设置为 1 的话就会报错
  8. };
  9. },
  10. //属性校验器,表示必须是 string
  11. propTypes: {
  12. name: React.PropTypes.string,
  13. },
  14. render: function() {
  15. return (
  16. // <div>{this.props.name}</div>
  17. //调用一个对象多个属性的写法
  18. // <div>Hello,{this.props.name1},{this.props.name2}</div>
  19. //调取 name 属性的默认值
  20. <div>Hello,{this.props.name}</div> //Hello123
  21. );
  22. }
  23. });
  24. //传递一个对象
  25. var props = {
  26. name1: "xiaochuan",
  27. name2: "xiaoming"
  28. };
  29. ReactDOM.render(
  30. // <HelloMassage name="xiaochuan" />,
  31. //传递一个对象的写法
  32. <HelloMassage {...props} />, //Hello,xiaochuan,xiaoming
  33. document.getElementById("example")
  34. );