美文网首页
使用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