您的位置:首页 > 房产 > 家装 > 直播交友app开发_信息查询app_seo广告_seo研究协会网

直播交友app开发_信息查询app_seo广告_seo研究协会网

2025/7/6 13:27:14 来源:https://blog.csdn.net/2301_77451464/article/details/142717158  浏览:    关键词:直播交友app开发_信息查询app_seo广告_seo研究协会网
直播交友app开发_信息查询app_seo广告_seo研究协会网

使用js创建虚拟dom的两种方法

使用js

如果现在需要在h1里面加一个span标签,怎么加呢?

使用JSX

 <script type="text/babel">const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */<h1 id="title"><span>Hello,React</span></h1>)ReactDOM.render(VDOM, document.getElementById('test'))</script>

使用JS

  <script type="text/javascript">const VDOM = React.createElement('h1', { id: 'title' }, React.createElement('span', {}, 'Hello,React'))ReactDOM.render(VDOM, document.getElementById('test'))</script>

如果多层标签实行嵌套,使用JS就会很麻烦,推荐使用JSX,更加方便的创建虚dom

虚拟dom与真实dom的区别

虚拟dom就相当于是一个object类型的对象

如果写了console,借助浏览器的控制台给你输出,那么就直接输出了标签,想看属性可以加一个debugger;在source中查看,把鼠标放上去,会发现真实dom有很多的属性

 <script type="text/babel"> /* 此处一定要写babel *///1.创建虚拟DOMconst VDOM = (  /* 此处一定不要写引号,因为不是字符串 */<h1 id="title"><span>Hello,React</span></h1>)//2.渲染虚拟DOM到页面ReactDOM.render(VDOM, document.getElementById('test'))const TDOM = document.getElementById('demo')console.log('虚拟DOM', VDOM);console.log('真实DOM', TDOM);debugger;// console.log(typeof VDOM);// console.log(VDOM instanceof Object);/*关于虚拟DOM:1.本质是Object类型的对象(一般对象)2.虚拟DOM比较“轻”,真实DOM比较“重”,因为虚拟DOM是React内部在用,无需真实DOM上那么多的属性。3.虚拟DOM最终会被React转化为真实DOM,呈现在页面上。*/</script>

jsx语法规则

1.定义虚拟DOM时,不要写引号。
                        2.标签中混入JS表达式时要用{}。
                        3.样式的类名指定不要用class,要用className。
                        4.内联样式,要用style={{key:value}}的形式去写。(第一个花括号代表是要在里面写js代码,第二个花括号代表要在里面写属性对象)
                        5.JSX代码只有一个根标签
                        6.标签必须闭合
                        7.标签首字母

                                (1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
                                (2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。

   

JSX里面的标签最终会将其转化为html标签

	<script type="text/babel" >const myId = 'aTgUiGu'const myData = 'HeLlo,rEaCt'//1.创建虚拟DOMconst VDOM = (<div><h2 className="title" id={myId.toLowerCase()}><span style={{color:'white',fontSize:'29px'}}>{myData.toLowerCase()}</span></h2><h2 className="title" id={myId.toUpperCase()}><span style={{color:'white',fontSize:'29px'}}>{myData.toLowerCase()}</span></h2><input type="text"/></div>)//2.渲染虚拟DOM到页面ReactDOM.render(VDOM,document.getElementById('test'))/* jsx语法规则:1.定义虚拟DOM时,不要写引号。2.标签中混入JS表达式时要用{}。3.样式的类名指定不要用class,要用className。4.内联样式,要用style={{key:value}}的形式去写。5.只有一个根标签6.标签必须闭合7.标签首字母(1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。(2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。*/</script>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com