react 01 初学react

react渲染页面方式

创建容器->创建虚拟DOM->渲染虚拟DOM到页面

react引库

java 复制代码
  <!-- 这三行代码分别引入了 React、ReactDOM 和 Babel Standalone 库。 -->
  <!-- React 用于构建用户界面。 -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js" ></script>
  <!-- ReactDOM 用于在浏览器中渲染 React 组件。 -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js"></script>
  <!-- Babel Standalone 用于在浏览器中即时编译 JSX 语法。 --> 
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js" ></script>

创建虚拟DOM方式

1.采用JS创建

java 复制代码
const VDOM = React.creatElement('h1',{id:'title'},React,createElement('span',{},'Hello,react'))

2.采用JSX创建

java 复制代码
const  VDOM = <h1 title='test'><span>hello ,React</span></h1>;

显而易见第二种方式更加简单,所以常用JSX书写

jsx语法规则

1.定义虚拟DOM时。不要写引号。

2.标签中混入JS表达式时要用{ }。

3.样式的类名指定不要用class,要用className。

4.内联样式,要用style={{key:value}}的形式去写。

5.只有一个根标签。

6.标签必须闭合。

7.标签首字母

(1)若小写字母开头,则将改标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。

(2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。

示例代码

java 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <!-- 准备一个"容器" -->
  <div id="test"></div>


  <!-- 这三行代码分别引入了 React、ReactDOM 和 Babel Standalone 库。 -->
  <!-- React 用于构建用户界面。 -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js"></script>
  <!-- ReactDOM 用于在浏览器中渲染 React 组件。 -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js"></script>
  <!-- Babel Standalone 用于在浏览器中即时编译 JSX 语法。 -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>

  <script type="text/babel">
    //1.创建虚拟DOM
    const VDOM = <h1>hello React</h1>;

    // 2. 获取容器元素
    const container = document.getElementById('test');

    // 3. 创建 React 根并渲染
    const root = ReactDOM.createRoot(container);
    root.render(VDOM);
  </script>
</body>

</html>

结果会打印标题hello React

hello React

相关推荐
mldong4 分钟前
Node 开发者也有自己的轻量工作流引擎了:npm i 一行,5 分钟跑通一条审批流
javascript·后端·typescript
benbenAItalk8 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
2601_962885729 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
西瓜太郎12349 小时前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
多加点辣也没关系9 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
陈随易11 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周11 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师12 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing9812 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
Highcharts.js12 小时前
常见报错排雷指南2:导出失败的官方解法
javascript·react.js·ecmascript·highcharts·可视化图表·导出模块失败·导出服务