Vue中$refs的探索

3,373 阅读1分钟

最近公司在做一个新项目,出需求,原型图,UI图,接下来就轮到我了,画页面。在画页面的过程中,涉及到父子路由,于是,便自然想到了<router-view></router-view>,按照以往的操作,确定父子关系,配置好路由,就OK了。但是,对照需求文档,仔细一看,后期联调肯定要涉及父子页面传递参数啊,比如下图:

我要在父页面拿到子页面form表单的数据, 如何做?

首先我想到的就是,通过this.router.push({name: "", params:{} }), 将参数带到父页面,但是这种方法行不通,因为子页面没有跳转按钮,没有触发事件。于是,我又想到了Vuex,将子页面的form表单数据存储到store中,但是这对于多个子页面,就要建立多个store。不太合适。

那还有什么办法呢?咦,我可不可以通过$refs拿到子页面实例呢?试一把,哈哈,果然可以。这就太好了,拿到子页面实例,也就可以拿到子页面数据,然后在父页面如何操作,那就随意了,,,哈哈哈。

具体操作如下图: