.vue组件中获取DOM元素问题

.vue组件中获取DOM元素问题,第1张

一、问题引入

原项目把一块内容直接写在了模块中(浏览器显示的一整个页面),现在想把它提成一个单独组件,而且把其中使用 documentgetElementById('id') 改为 ref 获取元素的形式。

单独创建一个 vue 组件,通过绑定传值,触发页面变化从而触发 beforeUpdate 。

然后发现 beforeUpdate() 中根本获取不到此元素,用原生js获取也不行。

三、解决

1、 beforeUpdate() 生命周期函数中,在获取元素语句外套用 this$nextTick(function(){}) 。( mounted 无效,原因待查明)

官方解释:将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。即DOM真正加载完成。

var vm=new Vue({

el:'#app',

data{

isShow:false

},

components:{

to-do: to-do

},

methods:{

btn: function(){

thisdataisShow = true;

}

}

})

<div id="app">

<ul id="test">

<to-do v-show="isShow"></to-do>

</ul>

</div>

<button type="button" @touchstart="btn">添加li标签</button>

Spark有个关于是否允许一个application存在多个SparkContext实例的配置项, 如下: sparkdriverallowMultipleContexts: If true, log warnings instead of throwing exceptions when multiple SparkContexts are active该值默认为false, 即不

场景:A页面跳转到B页面并携带参数

11不带参数:

12带参数:

21不带参数:

22 query传参

23 params传参

24 直接通过path传参

25 传递对象(obj不能过长否则会报错)

26 params和query的区别

用法同上: this$routerpush()

向前或者向后跳转n个页面,n可为正整数或负整数

1 this$routerpush

跳转到指定url路径,并在history栈中添加一个记录,点击后退会返回到上一个页面

3 this$routergo(n)

向前或者向后跳转n个页面,n可为正整数或负整数

1 query 可以用 name 和 path 匹配路由,通过 this$routequeryid 获取参数,刷新浏览器参数不会丢失

2 params 只能用 name 匹配路由,通过 path 匹配路由获取不到参数,对应的路由配置 path:'/home/:id' 或者 path:'home:id' ,否则刷新浏览器参数丢失

3直接通过url传参, push({path: '/home/123'}) 或者 push('/home/123') ,对应的路由配置 path:'/home/:id' ,刷新浏览器参数不会丢失

在传值页面添加点击按钮,给点击按钮添加跳转的点击事件。

这里用this$routerpush,用query方法传值。name指定要传到的页面。query指名要带的参数。      thisredirect:当出错时跳转到404

接受值的页面用this$routequeryid接受值。id为传值页面query里面的id。

接受值是route而不是router

以上就是关于.vue组件中获取DOM元素问题全部的内容,包括:.vue组件中获取DOM元素问题、如何将vue里的id传到html页面、vue怎么解决多页面ID重复的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10136183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存