#夏日挑战赛# OpenHarmony基于JS对某位dom元素的刺探(中) 原创 精华
前言
在上回,我们跟dom事件触发所返回的响应对象有了一次初步的交流,也初步了解到这小伙子一些相关的信息,相信未来我们能多多交流,争取早日带回家,回顾上文链接 -> OpenHarmony基于JS对某位dom元素的刺探(上)
对于openHarmony的dom元素有没有疑惑过?
那么我们先从如何获取到ta开始
要想得到ta的人,先知道ta家,再从家长开始
在JS开发中,官方给我们提供以下的方法
其中$element
和$rootElement
是获取dom的方法,获取dom还有一个$refs
$root
、$parent
和$child
是获取vm实例(ps:个人觉得不推荐实际开发使用,太危险!!)
那么接下来,我们就开始挨个刺探ta相关的情况,争取早日抱回家 o->_<-O
我们测试的界面结构是以下图
获取dom元素
$element 参数 id :string
通过id来获取元素,当id为空时,默认获取根组件,这个根组件是当前页面的根组件,并非整个app的根组件
那么我们在test3组件界面测试,我们给根组件一个 id =test3Root
,方便接下来辨别
我们得到一下输出结果,都很正常
就这样完了?怎么可能,给ta安排下其他组件的id试试,看能不能获取得到,看是不是全局的
结果如下图,获取id为e的dom元素为undefined,也就是说$elment
获取dom元素是只能获取当前页面的dom元素
$rootElemnt 无参数
$rootElemnt()
可以获取当前页面组件的根组件,和$elemnt()
无参数的效果一样,
也就是说在同一个页面组件下 this.$rootElment() == this.$elment()
->_O 光说有什么用 (雷某:拿货来卖啊!)
好,来货,还是拿上面的test3组件界面,hml代码同上,
从上的结果中可以看出 this.$rootElement()
等价于 this.$element()
两个效果一样,一个字符长,一个字符短,知道该用谁了吧。 手动滑稽).jpg
$refs
$refs
也是获取dom的一种方法,具体用法需在需要获取的dom元素的标签上添加ref = “xxx”
xxx是自己定义的值,然后再通过 this.$refs["xxx"]
或 this.$refs.xxx
使用
下面我们在test2组件界面测试
test3是自定义组件,从外部导进来的,在test3上我们添加了一个ref="test3"
,同时也添加了一个id="ww"
在test2组件界面,我们在一个div上添加了ref="test2"
从上面的结果中,我们可以分析出来,$ref["xxx"]
和$ref.xxx
都是可行的,但是,自定义组件不能通过$refs
来获取dom,但是可以通过$elemnt
添加id后获取到自定义组件的dom,而且在引入的自定义组件中的attr
中是没有ref
的。
后续
嗷嗷嗷,终于到这个环节了,一开始写dom系列我以为两篇应该就能搞定,但后面随着我翻文档测试后,我低估了,而且在这期间遇到一个比较好玩的东西,就是上面我说危险的那几个方法,我发现我测试后,决定要为他们单独开一篇,如果和这个获取dom一起写的话,可能没多少人看,毕竟写完后,文章应该很长,看到都懒得看了,下一篇,顺便用这方法解决一下,遇到的一个冒泡阻塞失效的问题
来学习学习
一起学习-(o · o)-