Php获取vue.js,vue.js怎么获取dom

vue.js获取dom的方法:1、给html中原始标签对或子组件中定义ref属性,在【mounted(){}】方法后使用【this.$refs】获取DOM元素;2、mounted对组件的内容进行了修改后继续用【this.$refs】。

a6d45ebabc06fe09ef552aa33bb4f6dd.png

【相关文章推荐:vue.js】

vue.js获取dom的方法:给html中原始标签对或子组件中定义ref属性,在mounted(){}方法或者此方法后使用this.$refs.具体的ref值来获取DOM元素。因为使用mounted以前的钩子函数时,还未将组件挂载到DOM上,自然也无法通过$refs获取DOM上的元素;

需要区分的是,打印this.$refs.具体的ref值, 若是原始标签对则输出的结果是原始标签对,若ref属性在子组件标签中,则输出的是组件对象,而不是组件对应template中的内容;

this.$refs 输出的是当前组件中包含的定义了ref属性的标签或子组件的集合;

在组件渲染过程中,如mounted期间对组件的内容进行了修改后继续用this.$refs.被修改组件对应的ref,这个时候获取的是修改之前的DOM元素,为了获取修改之后的DOM元素,必须使用this.$nextTick()方法,并在该方法的回调函数中使用this.$refs,此时便是获取到修改之后的DOM元素。当然要获取修改之后的DOM元素可以在updated函数下,但是在某些具体的场景下需要在mounted中获取修改后的DOM元素;

Vue组件中获取DOM元素的方式之$refs的使用

Vue.component('Btn',{

template:`

我是按钮

`

})

let App = {

data:function() {

return {

isShow:false

}

},

template:`

`,

//对应输出结果为下面第一张图

// mounted:function() {

// console.log(this.$refs)

// console.log(this.$refs.input1)

// console.log(this.$refs.input2)

// console.log(this.$refs.btn1)

// }

mounted:function() {

// 修改ref=input2的v-show值,让其显示, 接着获取该DOM并让其获得焦点,但是没法获得焦点,这是因为mounted内无法获得更新DOM后的DOM元素,这个时候需要调用this.$nextTick方法,在其回掉函数中重新执行代码this.$refs.input2.focus()

this.isShow = true

// this.$refs.input2.focus()

this.$nextTick(function() {

this.$refs.input2.focus()

})

},

}

let vm = new Vue({

el:'#app',

data:function() {

return {

}

},

components:{

App

},

template:`

`

})

对应已注释mounted中的内容

a5b128c47ef37e997445bde1e1faede1.png

mounted中对this.$nextTick的使用使得mounted中可以获得已更新的DOM元素。在本代码中让已更新的DOM元素获得焦点

ed2534074571ccab1b053a46ff1dcaaf.png相关免费学习推荐:javascript(视频)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值