# CSS 选择器
一般 DOM
元素应用此方法没有问题,但是有父子组件关系时,因为组件加载顺序的问题,可能会导致获取元素为 null
export default {
mounted() {
console.log(document.querySelector("id").clientHeight)
}
}
# ref 节点获取
给子元素的根节点添加 ref
,在父组件中 this.$refs['child'].$refs['child-dom']
来获取子组件 DOM
。
每个组件都有一个 $el
属性,表示其对应的 DOM
,可以通过该属性获取元素各种参数。但这个属性其实是私有属性,理论上对开发者并不透明,但因为 JS
语法的缘故并没有真正的私有属性所以也可以直接用。
这样做破坏了封装性,相当于父组件提前知道子组件的结构了,依赖关系有点问题。
<template>
<son-component ref="ref"></son-component>
</template>
<script>
export default {
mounted() {
console.log(this.$refs.ref.$el.offsetHeight)
}
}
</script>