vue二级路由覆盖父路由

点击量:4130 来源:解译网 发表时间:2023-03-19 06:08作者:王映如

本篇文章给大家谈谈vue二级路由怎么定义,以及vue二级路由覆盖父路由对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、Vue-cli-4-路由配置文件,路由进阶,二级路由

2、vue路由,二级路由及跳转

3、Vue中展示二级路由的默认模块/二级路由默认显示

4、网络里面什么是二级路由?

5、vue路由(一、二级路由)

Vue-cli-4-路由配置文件,路由进阶,二级路由

vue.config.js    是vue的配置文件,必须创建在 demo根目录 下,该配置文件中,只能使用commonjs模块化语法,使用module.export导出,格式如下图。

@符号代表src资源目录,在vue.config.js文件中将路径解析,path.resolve是拼接路径方法。将@c定义为当前绝对路径

@c代表src目录下的components文件,@v代表src目录下的views文件,其他同理,后续在其他文件中引入文件时,只需要使用以下方法即可导入,不会随着文件目录的改变而改变。

1.路由模式

2.路由元信息

meta属性,配置路由的元信息,其实就是在每个路由身上配置一份数据

3.路由守卫

在meta对象中,可以配置一个roles属性,其中可以配置路由的访问权限,下图中可访问的人已标记为admin,vip及user

其次,在 router.beforeEach 及 router.AfterEach 中可以配置信息

router.beforeEach 是路由前置守卫,每次跳转路由之前,都会拦截,其中next()方法表示下一步(跳转),其中是一个回调函数,其中有三个参数to,from,next

router.AfterEach是 路由后置守卫,其中可以将页面的title设置为meta属性中设置的title,其中是一个回调函数,其中有两个参数to,from

浏览器的访问权限可以在application中的session storage中添加一个roles:admin,如果路由信息中meta中未设置roles,则无法访问该设置了roles属性的路由页面

安装: npm install nprogress(给路由页面的跳转添加一个上方的进度条)

导入:

首先在页面views中创建一个文件夹,然后在该文件夹中创建两个二级路由页面,如下图所示

然后在所需要创建二级路由的一级路由创建信息中添加一个 children数组 ,该数组中添加二个对象,每个对象就是该一级路由页面的一个二级路由页面,如下图所示,该二级路由信息中的component信息采用了 路由懒加载 的方式导入

然后在一级路由页面one.vue中写入二级路由页面的router-link导航和router-view

最终效果如下图所示

vue二级路由覆盖父路由

vue路由,二级路由及跳转

★router文件下的index.js文件:

/* 导入Vue构造函数 */

import Vue from 'vue'

/* 导入路由VueRouter构造函数 */

import VueRouter from 'vue-router'

/* 导入HomeView页面 */

import HomeView from '../views/HomeView.vue'

//调用构造函数Vue的use方法 传入VueRouter构造函数

//作用是把VueRouter作为一个插件 全局插入到Vue中

Vue.use(VueRouter)

/* 定义一个路由数组对象 */

const routes = [

  /* 一个对象就对应了一个路由

  path就是路由的地址

  name给路由起的名字

  component 具体跳转的页面

  */

  {

    /* path: '/' 根页面,表示已进入就显示的页面 */

    path: '/',

    name: 'home',

    /* 这种方式一进入页面就会全部加载,不是用到的时候再加载

       性能没有懒加载的方式好 */

    component: HomeView,

    /* 可以使用redirect 重定向 已进入主页就展示第一个子页面

     redirect 后面跟的是路径名 并不是name */

     /* 因为/是根路径 所有可以直接写one */

    redirect:'one',

    children:[{

      path:'one',

      name:'one',

      component: () = import('../views/OneView.vue')

    }]

  },

  {

    /* 这里是一级目录所以可以加/ 表示根目录 */

    path: '/about',

    name: 'about',

    // route level code-splitting

    // this generates a separate chunk (about.[hash].js) for this route

    // which is lazy-loaded when the route is visited.

    /* 懒加载功能 : 一开始不加载,当你切换路由的时候再加载 */

    component: () = import(/* webpackChunkName: "about" */ '../views/AboutView.vue'),

    /* about不是根路径 所以redirect后面要写全 '/about/aboutchild', */

    redirect:'/about/aboutchild',

    children:[{

      path:'aboutchild',

      name:'aboutchild',

      component: () = import('../views/AboutChild.vue')

    }]

  },

  {

    path:'/ChildA',

    name:'ChildA',

    component: () = import('../components/ChildA.vue')

  },

  {

    /* path:'*' 必须要放最后 */

    /* path:'*' 表示上面的路由没有匹配到 则进入下面的页面 */

    path:'*',

    name:'notfound',

    component: () = import('../components/NotFound.vue')

  }

]

/* 实例化构造函数 VueRouter 产生一个实例化对象

   并把上面的路由数组对象routes当作参数 以对象的方式传给构造函数 VueRouter*/

const router = new VueRouter({

  routes

})

/* 把实例化路由对象 router默认导出  */

export default router

main.js文件:

/* 导入Vue构造函数 */

import Vue from 'vue'

/* 导入App.vue入口页面 */

import App from './App.vue'

/* 导入router文件夹中的index.js中的router实例化对象 */

/* 一个文件夹里面只有一个index.js文件在脚手架中可以把./router/index.js简写为./router  */

import router from './router'

/* 生产提示 */

/* 改成false是用来关闭开发者提示 */

Vue.config.productionTip = false

/* 在Vue的对象参数里面配置 el:"#app" 等于 .$mount('#app')

   都是用来挂载到id为#app的div上的*/

   /* 把路由实例化对象router配置在Vue中,作用是保证项目

    所有的vue文件都可以使用router路由的属性和方法 */

new Vue({

  router,

  /* 会把所有vue文件渲染到App组件上 */

  render: h = h(App)

}).$mount('#app')/* 等同于 el:"#app" */

viwes文件下:

App.vue文件:

template

  div id="app"

    nav

      !-- router-link 组件是负责跳转的 to属性是用来写跳转路径的

          router-link组件本质上是有a标签来实现的 路由跳转的原理是根据

          锚点来的 --

      router-link to="/"Home/router-link |

      router-link to="/about"About/router-link |

      router-link to="/ChildA"点我跳转ChildA/router-link |

      router-link to="/ChildB"点我跳转ChildB/router-link |

    /nav

    !-- router-view 组件是用来展示组件的容器 --

    router-view/

    !-- 创建两个组件ChildA 和ChildB 并写两个 router-link 可以实现跳转

         组件显示在 router-view 容器中 --

  /div

/template

style

#app {

  font-family: Avenir, Helvetica, Arial, sans-serif;

  -webkit-font-smoothing: antialiased;

  -moz-osx-font-smoothing: grayscale;

  text-align: center;

  color: #2c3e50;

}

nav {

  padding: 30px;

}

nav a {

  font-weight: bold;

  color: #2c3e50;

}

/* .router-link-exact-active 跳转链接被激活的时候加载到router-link身上 */

nav a.router-link-exact-active {

  color: #42b983;

}

/style

AboutView.vue文件:

template

  div class="about"

    h1This is an about page/h1

    !-- to后面写的是路径 --

    !-- router-link to="/about/aboutchild"我是aboutchild/router-link --

    !-- to 后面要加: 作用是把后面解析成一个对象而不是字符串 --

    router-link :to="{name:'aboutchild'}"我是aboutchild/router-link

    !-- 二级路由显示的容器 --

    router-view/router-view

  /div

/template

AboutChild.vue文件:

template

  div

      h1AboutChild/h1

  /div

/template

script

export default {

}

/script

style

/style

HomeView.vue文件:

template

  div class="home"

    h1KW47冲冲冲/h1

    router-link to="/one"ONEview/router-link

    !-- 二级路由对应的组件容器 --

    router-view/router-view

  /div

/template

script

// @ is an alias to /src

export default {

  name: 'HomeView',

  components: {

  }

}

/script

OneView.vue文件:

template

  div

      h1我是ONEVIwe/h1

  /div

/template

script

export default {

}

/script

style

/style

components文件下:

ChildA.vue文件:

template

  div

      h1我是CHildA/h1

  /div

/template

script

export default {

}

/script

style

/style

ChildB.vue文件:

template

  div

      h1我是ChildB/h1

  /div

/template

script

export default {

}

/script

style

/style

NotFound.vue文件:

template

  div

      h1我是notfound/h1

  /div

/template

script

export default {

}

/script

style

/style

左边文件目录:

Vue中展示二级路由的默认模块/二级路由默认显示

1.新建一个二级路由 导入到router/index.js 并配置

2.在盛放子路由的页面加入router-link 与 router-view标签

3.点击带有router-link标签的按钮即可展示子路由

网络里面什么是二级路由?

二级路由就是本身已经有一个路由器 由于房间比较大信号不强 或者要达到 某种功能 本身路由器没有需要的功能 要使用第二个路由器的功能 它就叫二级路由 希望能帮到您!

vue路由(一、二级路由)

是前台为了实现单页面应用然后设置路径,根据不同的路径显示不同页面。但是这些路径在服务器上不是真是存在的

hash路由 默认的是hash路由

history路由

通过onhashchange()来检测路由的变化,根据不同的hash来显示不同元素。获取当前的hash值location.hash

通过onpopstate来检测history堆栈路径的变化,堆栈的路径是通过history.pushState(null, '',"?page=2")添加进去的

由hash路由设置成history路由,给路由添加配置项 mode="history"

1、设置相应组件

2、在router-index.js文件中添加配置

首先引入组件,然后配置规则 {path:设置路径,name:名,component:组件}

3、在需要现在组件的地方给页面添加router-view/router-view

4、设置导航路径

使用vue提供 router-link to="路径"/router-link 默认的解析成a标签

5、设置默认路由

6、设置导航样式

1、需要定义组件

2、确定好在那个组件配置二级路由,就去那个组件的配置规则中添加children关键字,按照一级路由的配置方法配置规则

3、在需要配置二级路由的组件中添加router-view

4、设置导航 router-link to="/ / "

5、设置导航链接的样式

我们可以定义一个一级路由,里面可以包裹底部footer组件,让他为二级路由,这时点击底部的二级路由时,就会切换不同的页面,而不需要底部组件显示的时候,那我们在配置一个一级路由就好了!!!

关于vue二级路由怎么定义和vue二级路由覆盖父路由的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

  • 电影白莲花语录生活(白莲花经典语录文件)

    如果您正在寻找电影白莲花语录生活那么本文刚好为大家整理了各方的说法,同时还有白莲花经典语录文件可以一起阅读,希望能够帮到您。本文目录一览:1、抗战电影白莲花观后

    2023-10-29阅读:0
  • 荷花语录文件(荷花经典一句)

    今天和朋友们分享荷花语录文件相关的知识,相信大家通过本文介绍也能对荷花经典一句有自已的收获和理解。自己轻松搞问题。本文目录一览:1、关于荷花的优美句子摘抄关于荷

    2023-09-06阅读:1
  • 共用一个路由器怎样共享文件

    网友祁海提问:共用一个路由器怎样共享文件 解译网将综合多位内业人士从不同角度和维度来解答 今天给各位分享怎么设置共用路由器上网的知

    2023-04-14阅读:0
  • 华为路由器查看文件目录命令

    网友单忠艳提问:华为路由器查看文件目录命令 解译网将综合多位内业人士从不同角度和维度来解答 今天给各位分享华为路由器建立文件zip

    2023-04-13阅读:1
  • 路由器共享电视文件夹在哪

    网友陈翔提问:路由器共享电视文件夹在哪 解译网将综合多位内业人士从不同角度和维度来解答 本篇文章给大家谈谈路由器共享电视文件,以及

    2023-04-09阅读:0
  • zip文件怎么打开手机软件(zip文件怎么打开)

    下面和各位分享zip文件怎么打开的知识和文章,同时也会对zip文件怎么打开手机软件进行收集相关的内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧

    2023-04-08阅读:6
声明

删帖请联系zhiyihome@qq.com;