React创建


前言

从本章开始介绍React


一、体验React

我们首先从引入React核心库开始

1.引入库

代码如下(示例):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HELLO WORLD</title>
    <!--    引入react核心库-->
    <script src="./script/react.development.js"></script>
    <script src="./script/react-dom.development.js"></script>
</head>

2.使用React内置API

1.React.createElement()

用来创建一个React元素
参数:
1.元素的名称(html标签必须小写)
2.标签中的属性

  • class属性需要使用className来设置
  • 在设置事件时,属性名需要修改为驼峰命名法
  • 元素的内容(子元素)
    注意点:
  • React元素最终会通过虚拟DOM转换为真实的DOM元素
  • React元素一旦创建就无法修改,只能通过新创建的元素进行替换
    代码如下(示例):
const button = React.createElement('button',{
    type:'button',
    className:'hello',
    onClick:()=>{
      alert('点击了')
    }
  },'点我')

2. ReactDOM.createRoot()

获取根元素 根元素就是React元素要插入的位置
代码如下(示例):

const root = ReactDOM.createRoot(document.getElementById('root'));

修改React元素后,必须重新对根元素进行渲染
当调用render渲染页面时,React会自动比较两次渲染的元素,只在真实DOM中更新发生变化的部分 没发生变化的保持不变


3. render()

将元素在根元素中显示
代码如下(示例):

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(div);
  • 用来将React元素渲染到根元素中
  • 根元素中所有的内容都会被删除,被React元素所替换
  • 当重复调用render()时,React会将两次的渲染结果进行比较,
    它会确保只修改那些发生变化的元素,对DOM做最少的修改

4. 结合使用

代码如下(示例):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HELLO WORLD</title>
    <!--    引入react核心库-->
    <script src="./script/react.development.js"></script>
    <script src="./script/react-dom.development.js"></script>
</head>
<body>
<div id="root"></div>
<script>
    // 创建一个React元素
    const div = React.createElement('div',{},'React')
    // 获取根元素对应的react元素
    const root = ReactDOM.createRoot(document.getElementById('root'))
    // 将div渲染到根元素中
    root.render(div)
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值