美文网首页
使用vue套件router-link之后组件参数的传递

使用vue套件router-link之后组件参数的传递

作者: Garden_Z | 来源:发表于2017-04-24 16:06 被阅读0次

使用vue套件router-link之后组件参数的传递
背景:在页面使用了router-view+router-link组合实现子组件页面间跳转的同时,希望根据父组件传递的某个参数动态显示子组件的值。
具体案例如下:
== ==========================================================
方案A: 通过query属性
1、在父组件或页面中,配置$route的query属性,如下所示,传递channel_id参数。
<router-link :to="{ path: '/cache', query: { channel_id: xxx } }">缓存</router-link>

2、在子组件中,在mounted钩子函数内获取该参数传递的值,即可
var channel_id = this.$route.query.channel_id;
【存在的问题】
该方案存在的问题有,首先,vue组件加载方案是先加载子组件,再加载父组件,故出现页面启动后,默认首先加载的子组件无法获取到传递的参数值,在mounted钩子函数中打印为undefined(因为此时父组件还未加载)。
== ==========================================================
方案B: 通过自定义属性
1、在在父组件或页面中,为router-view组件添加自定义属性myattr,如下所示,通过此属性传递参数。
<router-view class="view" :myattr="sss"></router-view>
2、在子组件中,通过设置props:['myattr'],获取传递过来的值

相关文章

网友评论

      本文标题:使用vue套件router-link之后组件参数的传递

      本文链接:https://www.haomeiwen.com/subject/hnspzttx.html