什么是slot
当需要让组件组合使用,混合父组件的内容与子组件的模板时,就回用到slot,这个过程叫内容分发
props传递数据,events触发事件和slot内容分发构成了vue组件的3个api来源
<child-component>
{{message}}
</child-component>
这里的message就是一个slot,但是它绑定的是父组件的数据,而不是<child-component>的数据
父组件模板的内容是在父组件作用域内编译,
1,导入核心包:
react 和
react-
dom (vue中只导入一个核心包“Vue”)
如果进行页面开发则需导入
react-
dom进行页面
元素的渲染,如果进行app应用开发,则引入
react-native可将
元素渲染成app
2,创建
react元素(虚拟
dom)
3,将
react元素渲染到页面中
页面最终应该渲染到public文件中的index.html的id为root的节点中
// 1,引入核心包
react和
react-
dom
当我们在react中需要做一些dom操作时,就会使用到react给我们预留的“后门”。
之所以称之为“后门”,是因为当前流行框架react/vue出现的目的就是避免操作dom,造成渲染浪费。然而很多时候不能不操作dom。
1、通过React.createRef()/useRef();来创建一个ref变量。
// 类组件中
constructor (props) {
super(props);
this.myRef = React.createRef();
// 函数组件中(使用hooks
render(){
<div ref={(nodeElement) => { nodeElement && nodeElement.appendChild('<div>111</div>') }} />
一、创建DOM组件
React中Virtual DOM几乎涵盖了所有的原生DOM。React大部分工作都是在Virtual DOM完成的。
ReactDOMComponent针对Virturl DOM主要进行了一下处理:
属性的操作,事件的处理
子节点的更新
二、如何更新属性
当执行mountComponent时,ReactDOMComponent首先会生成标记和标签。通过createOpen...
`react-dom`是React的官方DOM操作库,包含了一些常见的DOM操作方法,例如`render()`、`hydrate()`等。而`react-dom/client`是`react-dom`的一个子模块,专门用于在浏览器环境中使用React。
`react-dom`的API可以在服务器端使用,例如使用`renderToString()`方法将React组件渲染为HTML字符串。而`react-dom/client`则是专门针对浏览器环境的,提供了一些额外的API,例如`createRoot()`,可以用于创建根节点并将React组件渲染到根节点上。
综上所述,`react-dom`是React官方提供的DOM操作库,可以在服务器端和浏览器端使用,而`react-dom/client`是`react-dom`的子模块,专门用于在浏览器环境中使用React,提供了一些额外的API。