Vue实现路由跳转和嵌套
一、配置 Router用 vue-cli 创建的初始模板里面,并没有 vue-router,需要通过 npm 安装 安装完成后,在 src 文件夹下,创建一个 routers.js 文件,和 main.js 平级 然后在 router.js 中引入所需的组件,创建 routers 对象 const routers = [
{ path: '/home',name: 'home',component: Home }, { path: '/',component: Home }, ] export default routers 在创建的 routers 对象中, path 配置了路由的路径,component 配置了映射的组件 需要注意的是,export default routers 必须写在文件底部,而且后面还需要接一空行,否则无法通过 ESlint 语法验证 然后 main.js 也需要修改: Vue.use(VueRouter)
const router = new VueRouter({ new Vue({ 在创建的 router 对象中,如果不配置 mode,就会使用默认的 hash 模式,该模式下会将路径格式化为 #! 开头。 添加 mode: 'history' 之后将使用 HTML5 history 模式,该模式下没有 # 前缀,而且可以使用 pushState 和 replaceState 来管理记录。 关于 html5 history 模式的更多内容,可以参考官方文档: 二、嵌套路由在这个实例中,为了加深项目层级,App.vue 只是作为一个存放组件的容器: 其中 上面已经配置了两个路由,当打开 http://localhost:8080 或者 http://localhost:8080/home 的时候,就会在 home.vue 是真正的父组件,first.vue、login.vue 等子组件都会渲染到 home.vue 中的 如此一来,就需要在一级路由中嵌套二级路由,修改 routers.js const routers = [
{ path: '/',component: Home, children: [ { path: '/', component: Login } ] },{ path: '/home',children: [ { path: '/',name: 'login',component: Login },{ path: 'first',name: 'first',component: First } ] } ] export default routers 在配置的路由后面,添加 children,并在 children 中添加二级路由,就能实现路由嵌套 配置 path 的时候,以 " / " 开头的嵌套路径会被当作根路径,所以子路由的 path 不需要添加 " / " 三、使用
|