首页 文章

Vue Router和Vuex

提问于
浏览
0

我有两个问题 . 1.如何捕获未定义的路由并重定向到404页面? 2.我如何使用Vuex动作从api获取数据?我知道vuex突变必须是同步和动作异步 . 但我可以获得有突变的数据,然后可以使用诺言 . 但不能在行动或我做任何错误 . 请给我一个漂亮的例子(组件类型) . 我在Laravel项目的laravel mix中使用vuex . 谢谢...

1 回答

  • 1

    一般来说,如果您要定义应用程序中的所有路径,则不应该获取未定义的路由 . 您可以在路由配置中定义重定向:

    [
        {
            path: 'admin/posts/list',
            name: 'post-list',
        },
        {
            path: 'admin/posts',
            redirect: 'admin/posts/list'
        }
    ]
    
    // you can also redirect to a named route instead
    // of a path like this:
    {
        path: 'admin/posts',
        redirect: { name: 'post-list' }
    }
    

    如果你想做一个“全部捕获”来抓取任何不匹配的路径并重定向到你的404组件/视图,那么你可以这样做:

    {
        path: '*',
        redirect: '/404'
    }
    

    确保它位于路由定义的底部作为最后一个路由,因为它将捕获它上面的树中的任何路由 .

    至于你关于突变/动作的问题,异步API请求,比如从API中获取数据,只有在你使用Vuex时才会在动作中发生 . 来自documentation on actions

    actions: {
      actionA ({ commit }) {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            commit('someMutation')
            resolve()
          }, 1000)
        })
      }
    }
    

相关问题