我有两个问题 . 1.如何捕获未定义的路由并重定向到404页面? 2.我如何使用Vuex动作从api获取数据?我知道vuex突变必须是同步和动作异步 . 但我可以获得有突变的数据,然后可以使用诺言 . 但不能在行动或我做任何错误 . 请给我一个漂亮的例子(组件类型) . 我在Laravel项目的laravel mix中使用vuex . 谢谢...
一般来说,如果您要定义应用程序中的所有路径,则不应该获取未定义的路由 . 您可以在路由配置中定义重定向:
[ { 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) }) } }
1 回答
一般来说,如果您要定义应用程序中的所有路径,则不应该获取未定义的路由 . 您可以在路由配置中定义重定向:
如果你想做一个“全部捕获”来抓取任何不匹配的路径并重定向到你的404组件/视图,那么你可以这样做:
确保它位于路由定义的底部作为最后一个路由,因为它将捕获它上面的树中的任何路由 .
至于你关于突变/动作的问题,异步API请求,比如从API中获取数据,只有在你使用Vuex时才会在动作中发生 . 来自documentation on actions: