vue中ref的使用问题怎么解决(ref,vue,开发技术)

时间:2024-05-09 07:20:51 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    vue%E4%B8%ADref%E7%9A%84%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3

如果你获取到的总是空的,你注意一下:

试试在mounted()里面调用有效果没有

调用的对象是本来就存在的,还是需要数据渲染之后才会出现的,同理,在mounted()里面调用看看

我一开始设置ref在v-for列表上,直接获取this.$refs.name.style,永远是空的,

后来才发现,this.$refs.name是一个数组,无法通过 .style 获取样式,

只能遍历这个this.$refs.name数组,在this.$refs.name[index]上设置样式

// 6.14 更新,这个说法有点问题

但是像高度宽度,可以通过offsetHeight,等来获取。

ref不是响应式的,所有的动态加载的模板更新它都无法相应的变化。

解决方案:

通过

来得到数据

可是有时会出现 this.$refs.xxx 为undefined的情况。

场景1:在created()里使用

在这个生命周期中进行数据观测 ,属性和方法的运算,watch 事件回调。但是页面还没有挂载上去,没有e l 属 性 , t h i s . el 属性,this.el属性,this.refs无法调用dom。

解决办法:换成在mounted()里使用

场景2:父元素或当前元素使用了v-if或v-show

因为$refs不是响应式的,只在组件渲染完成后才会生效,在初始渲染的时候是不存在的。

因为是非响应式的,所有动态加载的模板更新它都无法相应的变化。

解决办法:可以通过setTimeout(()=>{…}, 0)来实现。

遍历加ref时可以使用 :,即 :ref ="variable" ,这样得到的是不同的ref。

但是也可以不使用 :,这时得到的 ref 将会是一个包含了对应数据源的这些子组件的数组。

本文:vue中ref的使用问题怎么解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:C语言如何实现随机抽取纸牌程序下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18