react 入门-创建组件(2)无状态功能函数法

前面说的是通过继承React.Component创建React组件。
还可以通过无状态的功能函数构造React组件。

举例

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>React Components</title>
</head>
<body>

<!-- Target Container -->
<div id="react-container"></div>

<!-- React Library & React DOM-->
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>

<script>
    const foodList = ({items}) =>
        React.createElement(
              "ul", 
              {className: "food-list"},
             items.map((item, i) =>
                React.createElement("li", { key: i }, item)
             )
     )

    const items = [
        "1 apple",
        "1 banana",
        "2 oranges",
        "2 tomatos"
    ]
    ReactDOM.render(
      React.createElement(foodList, {items}, null),
      document.getElementById('react-container')
    )
</script>

</body>
</html>

声明一个无状态功能函数 foodList:其中
items是传入的形参参数;
React.createElement是函数体和返回值

const foodList = ({items}) =>
        React.createElement(
              "ul", 
              {className: "food-list"},
             items.map((item, i) =>
                React.createElement("li", { key: i }, item)
        )
 )

另外一个匿名函数是items.map()里面的作为参数传入的函数
itemitems数组里的每一个值,i是items数组的index, item = items[i]

items.map((item, i) =>
       React.createElement("li", { key: i }, item)
)

这句的作用是把 items里面的每个值,转换成一个React Element。
每个item都构造成对应html的<li>,包含一个key的属性以及item的内容。

ReactDOM.render(
      React.createElement(foodList, {items}, null),
      document.getElementById('react-container')
)

在ReactDom渲染的时候,以前面创建的无状态功能函数foodList构造React.createElement,并传入实参{items}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值