vue-router 使用动态路由,同一个模板内的内容并没有变化是什么原因?

router.js
const routes = [

{
    path: '/root',
    redirect: '/'
},

{
    path: '/index', component: Index,
    name:'index',
    children : [
        {
            path: '/framecore:form', component: FrameCore,
            name:'framecore',
        },
        {
            path: '/funcregedit', component: Funcregedit,
            name:'funcregedit',
        }
    ]
}

];
//路由跳转
const router = new VueRouter({

//开启h5 history 模式
mode: 'history',
routes // (缩写)相当于 routes: routes

});

点击按钮进行路由跳转的代码

var result = JSON.parse(JSON.stringify(item));
result.id = result.cprogram+createUUID(6,16);
this.$router.push({ name: 'framecore', params: {form:result}});

模板界面
<template>

<div>
    <h1>核心单据{{ $route.params.form.id}}</h1>
</div>

</template>

这个id 始终是我第一跳转的值,哪里出了问题?

官方给的例子 是可以的
http://jsfiddle.net/yyx990803...

阅读 4k
2 个回答

vue的组件是有生命周期的.
就算你route改变了.但是属于同一个组件.那么这个组件不会销毁然后再重新挂载.既不会再走一遍生命周期
这时候你只能watch routes的变化然后拉取新的数据.

你的问题描述的不是那么清楚,按我的理解是点击然后根据id获取数据切换模板的内容吗,
如果是这样的话,首先你有把<router-view></router-view>这个写出来吗,其次,children:[]数组里面的path是不需要加'/'的,如果你是在/index的后面加/id的话,首先需要利用watch监听路由变化,去触发路由跳转获取相应的内容
这是我的建议,如果你觉得我回答的跟你的不着边的话,可以麻烦您把问题描述的清楚点吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏