使用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'],获取传递过来的值
网友评论