首页 > 其他分享 >#yyds干货盘点# 歌谣学前端之react三个api之一

#yyds干货盘点# 歌谣学前端之react三个api之一

时间:2022-12-06 22:31:43浏览次数:43  
标签:yyds React const button 元素 react api createElement div

前言

我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 微信公众号前端小歌谣

小结

/* * React.createElement() * - 用来创建一个React元素 * - 参数: * 1.元素的名称(html标签必须小写) * 2.标签中的属性 * - class属性需要使用className来设置 * - 在设置事件时,属性名需要修改为驼峰命名法 * 3.元素的内容(子元素) * - 注意点: * React元素最终会通过虚拟DOM转换为真实的DOM元素 * React元素一旦创建就无法修改,只能通过新创建的元素进行替换 * * * */

代码案例

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>三个API</title>
<script src="script/react.development.js"></script>
<script src="script/react-dom.development.js"></script>
</head>
<body>
<button id="btn">我是按钮</button>
<div id="root"></div>

<script>
/*
* React.createElement()
* - 用来创建一个React元素
* - 参数:
* 1.元素的名称(html标签必须小写)
* 2.标签中的属性
* - class属性需要使用className来设置
* - 在设置事件时,属性名需要修改为驼峰命名法
* 3.元素的内容(子元素)
* - 注意点:
* React元素最终会通过虚拟DOM转换为真实的DOM元素
* React元素一旦创建就无法修改,只能通过新创建的元素进行替换
*
*
* */

// 创建一个React元素
const button = React.createElement('button', {
type: 'button',
className: 'hello',
onClick: () => {
alert('你点我干嘛')
}
}, '点我一下');

// 创建第一个div
const div = React.createElement('div', {}, '我是一个div', button);

// 获取根元素
const root = ReactDOM.createRoot(document.getElementById('root'));

// 将元素在根元素中显示
root.render(div);

// 获取按钮对象
const btn = document.getElementById('btn');
btn.addEventListener('click', ()=>{
// 点击按钮后,修改div中button的文字为click me
const button = React.createElement('button', {
type: 'button',
className: 'hello',
onClick: () => {
alert('你点我干嘛')
}
}, 'click me');

// 创建一个div
const div = React.createElement('div', {}, '我是一个div', button);

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

</body>
</html>

标签:yyds,React,const,button,元素,react,api,createElement,div
From: https://blog.51cto.com/u_14476028/5916679

相关文章

  • #yyds干货盘点# 歌谣学前端之react三个api之一续集
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • [Typescript] 129. Hard - Capitalize Nest Object Keys
    Capitalizethekeyoftheobject,andifthevalueisanarray,iteratethroughtheobjectsinthearray. /*_____________YourCodeHere_____________*/......
  • 什么是API网关
    API网关是当今互联网应用在前后端分离背景下,微服务架构、分布式架构、多端化服务等架构中重要的组成部分,作为应用层统一的服务入口,方便平台管理和维护众多的服务接口。作为......
  • ReactNative 常用命令
    ReactNative常用命令安装RN的初始化命令npminstall-greact-native-cli配置淘宝镜像npmconfigsetregistryhttps://registry.npm.taobao.orgnpmconfigsetdistur......
  • 使用Spring Reactor优化推荐流程
    1.背景公司有一个推荐系统Rec,这个系统的主要功能是:向外部系统提供推荐接口根据请求获取推荐策略根据推荐策略完成推荐的召回、过滤、打分、排序阶段Rec作为微服务......
  • Taro vs React Native 的八大差异
    TarovsReactNative的八大差异桂子Web开发,深圳​关注他 11人赞同了该文章API风格Taro与RN的一些组件及字段并不完全一致,以RN为主......
  • React的生命周期
    React的生命周期中有常用的和不常用的。常用的有:1constructor():完成了数据的初始化。注意:只要使用了constructor()就必须写super(),否则this指向会出错。-2render():re......
  • Taro踩坑记之React-Native环境教程
    Taro踩坑记之React-Native环境教程LaxusJ关注0.9892019.07.2722:56:55字数424阅读10,841当前环境TaroCLI1.3.10environmentinfo:System:OS:macOS10.14.......
  • React的10种hook
    React目前提供的HookuseState设置和改变state,代替原来的state和setStateuseEffect代替原来的生命周期componentDidMount,componentDidUpdate和componentWillUnmount......
  • #yyds干货盘点# 名企真题专题:最大乘积
    1.简述:描述给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:输入共2行,第一行包括一个整数n,表示数组长度......