vue路由器使用模式

时间:2019-07-12 06:31:06

标签: javascript vue.js vue-router vue-reactivity

访问/ parent页面并渲染Parent组件,

访问/ parent / modal并渲染Child组件(打开一个modal组件)

导航回/ parent(尝试在父组件中呈现更新的数据),这就是我的难处!

保存数据后,我将跟踪路径参数,并使用一个函数来获取数据。但是,父级没有反应性。

我必须手动刷新或在函数中添加location.reload()才能查看数据更改。

为什么父级对路由器更改没有反应?

我已经设置了路线监视:

'$route' (to, from) {
    this.fetchUpdate
}
  • 没用

但是,在vue.js文档中,beforeRouteEnter和beforeRouteUpdate(到,从,下一个)显然是首选方法,并且仍然像手表一样获取数据,但是父级没有反应。

但是,当我没有将路由设置为嵌套(/父/子)时,它就可以工作,但是,“灯箱”效果就不会出现,看起来就像是全尺寸页面加载。

//Route Structure

{
    path: '/dashboard',
    name: 'dashboard',
    component: Dashboard,
    meta: {
        requiresAuth: true
    },
    children: [
        {
            path: 'modal',
            name: 'modal',
            component: Modal,
            meta: {
              requiresAuth: true
            }
        }
    ]
},

// Parent Structure

beforeRouteEnter (to, from, next) {
    next(vm => {
        vm.fetchUpdate()
        next();
    })
},
beforeRouteUpdate (to, from, next) {
    firebaseDb.collection('post').where('post_id',
      '==', to.params.post_id).get()
        .then(querySnapshot => {
            querySnapshot.forEach(doc => {
                next(vm => {
                  vm.post_id = doc.data().post_id
                  vm.title = doc.data().title
                  vm.paragraph = doc.data().paragraph
                })
            })
        })
}
,

我们只是想让编辑帖子的Modal版本可以使用,因为它更加用户友好,而且我们完全陷入困境

让我知道您是否需要更多的代码结构

1 个答案:

答案 0 :(得分:0)

请显示父组件的完整代码段。