vue2 的 $refs 在 vue3 组合式 API 中的替代方法
如果你有过 vue2 的项目开发经验,那么对$refs
就很熟悉了。由于 vue3 的断崖式的升级,在 vue3 中如何使用$refs
呢?想必有遇到过类似的问题,我也有一样的疑惑。通过搜索引擎和 github,基本掌握如何使用$refs
。在 vue3 中使用组合式 API 的函数ref
来代替静态或者动态 html 元素的应用。
最近业余在学习 vue3 项目《蜡笔(Crayon)管理模板:Vue3 + Vuex4 + Ant Design2》开发,这两天迭代推进了一点,实现了chart
图表组件,写文章的时候发现提交代码的commit
有错别字。
在 vue3 中使用组合式 API 的setup()
方法的时候,无法正常使用this.$refs
,但可以使用新的函数ref()
。
下面代码摘自:https://github.com/QuintionTang/crayon/blob/feat-dashboard/src/qtui/components/Chart.vue
这段代码完整的实现了一个图表组件Chart
,其中自定义了属性props
,通过把参数传递给setup
方法来使用其属性值。html 中定义一个ref="refChart"
来作为图表的 dom 对象,在setup
方法中通过方法ref
方法来定义响应式可变对象,并在setup
函数结尾作为返回值。
需要注意的是,返回值的属性名必须和 html 中的 ref 值一致。
下面代码是可以正常执行的。
下面的情况,会出现程序错误,无法达到预期效果。应为 html 中定义的ref="refChart"
和 setup 返回的refChartBox
不一致。
结论
本文只是简单的介绍ref
方法的使用,正好在项目中用到,后续将继续边学边推进项目并做好笔记。
版权声明: 本文为 InfoQ 作者【devpoint】的原创文章。
原文链接:【http://xie.infoq.cn/article/960bbf956a3b2df0f59d82fe6】。文章转载请联系作者。
评论