vue的路由vue怎么配置路由可以加二级目录吗

饿了么vue,项目创建流程代码篇(路由基本,将父组件和子组件联系起来)
创建的过程( 二):路由功能实现页面切换
定义三个子组件,分别是goods,seller,ratings
安装vue-router插件 npm install --save-dev vue-router
// 入口main.js下
import VueRouter from 'vue-router';
import App from './App';
// goods组件
import Goods from './components/goods/goods';
import Seller from './components/seller/seller';
import Ratings from './components/ratings/ratings';
// 全局引用样式
import './common/stylus/index.styl';
上方引入的是父组件和一个依赖组件
/* eslint-disable no-new */
Vue.use(VueRouter);
// 使用路由插件
/* eslint-disable no-unused-vars */
// 需要一个根组件
let app = Vue.extend(App);
// 实例一个路由,可以拉入自己的配置项
let router = new VueRouter({
linkActiveClass: 'active'
// 配置路由
router.map({
'/goods': {
component: Goods
'/seller': {
component: Seller
'/ratings': {
component: Ratings
// 启动路由,配置一个挂载点
router.start(app, '#app');
// 进入页面默认载入板块
router.go('/goods');
子组件goods等可以加内容方便显示
&template&
&div&内容&/div&
&/template&
&script type="text/ecmascript-6"&
export default{};
&style lang='stylus' rel='stylesheet/stylus' type="text/stylus"&
App.vue中使对引入的组件进行样式的设置,注意导入组件之后,进行注册
&!--模板--&
&template&
&v-header&&/v-header&
&div class="tab
border-1px"&
&div class="tab-item"&
&!--vue1.0路由引用--&
&a v-link="{path:'/goods'}"&商品&/a&
&div class="tab-item"&
&a v-link="{path:'/ratings'}"&评论&/a&
&div class="tab-item"&
&a v-link="{path:'/seller'}"&商家&/a&
&!--路由的外链 点击了路由触发,页面变化的内容部分--&
&router-view&&/router-view&
&/template&
&!--js脚本--&
import header from './components/Header/header';
export default{
// 注册header
components: {
'v-header': header
&!--样式--&
&style lang="stylus" rel="stylesheet/stylus" type="text/stylus"&
display:flex
width:100%
height:40px
line-height:40px
border-bottom: 1px solid rgba(7,17,27,0.1)
text-align:center
display:block
text-decoration:none
font-size:14px
color:rgb(77, 85, 95)
color:rgb(240, 20, 20)
随时随地看视频博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Vue-Router使用配置指南 – 那时那你
一、初始化项目
我这里使用之前搭建的Vue 2.0项目工程框架来初始化项目。详细可以参考
项目地址:
二、基本路由使用
1、构建路由页面组件
先建立几个页面组件,并包括一个404页面,当无法找到匹配路由时就使用这个404页面。几个页面组件代码如下:
&template&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'home',
msg: 'Home'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
&template&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'about',
msg: 'About'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
&template&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'service',
msg: 'Service'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
&template&
&div class="flexColumnCenter notFoundPage"&
&h1&404&/h1&
&h1&找不到页面&/h1&
&/template&
export default {
name: 'notFoundPage',
msg: 'Hello Vue.js!'
methods: {
&s tyle scoped lang="scss"&
.notFoundPage{
background-color: #0a8
font-weight: 500;
&template&
&div class="hello"&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'hello',
msg: 'Hello Vue.js!'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
2、建立Vue-Router路由配置
在项目主目录src下建立router.js目录,专门用于Vue-Router路由配置。路由配置主要包括几部分内容:
(1)引入Vue-Router并使用
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
(2)导入需要在路由配置中使用的组件(页面)
import Home from './components/Home'
import About from './components/About'
import Service from './components/Service'
import Hello from './components/Hello'
import NotFoundPage from './components/NotFoundPage'
(3)定义路由配置项
const routes = [
{path: '/home', name: 'home', component: Home},
{path: '/about', name: 'about', component: About},
{path: '/service', name: 'service', component: Service},
{path: '/hello', name: 'hello', component: Hello},
{path: '*', component: NotFoundPage}
(4)配置并导出路由
最后一步是配置路由并将路由配置导出。Vue-Router接受一个路由选项配置和路由配置项参数,路由选项配置可以全局定义一些选项,如base(应用基路径),mode(路由模式),linkActiveClass(全局的路由激活状态样式),scrollBehavior(滚动行为)等等。路由配置项就是上面定义的各页面路由。
export default new VueRouter({
// mode: 'history',
base: '/',
scrollBehavior: function (to, from, savedPosition) {
return savedPosition
最后代码如下:
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import Home from './components/Home'
import About from './components/About'
import Service from './components/Service'
import Hello from './components/Hello'
import NotFoundPage from './components/NotFoundPage'
const routes = [
{path: '/home', name: 'home', component: Home},
{path: '/about', name: 'about', component: About},
{path: '/service', name: 'service', component: Service},
{path: '/hello', name: 'hello', component: Hello},
{path: '*', component: NotFoundPage}
export default new VueRouter({
// mode: 'history',
base: '/',
scrollBehavior: function (to, from, savedPosition) {
return savedPosition
3、在逻辑入口文件使用Vue-Router
在src/main.js中导入并加入路由配置。
import Vue from 'vue'
import App from './App'
import router from './router'
/* eslint-disable no-new */
render: h =& h(App)
}).$mount('#app')
在上面的配置中,将router和APP根组件一起挂载到入口文件index.html的&div id=”app”&标签
4、构建路由菜单组件
创建一个路由菜单组件,用来导航各个页面,每个路由项与路由配置一致。对于激活状态的路由,如果没有做特别配置,默认使用.router-link-active样式,所以,在这里可以定义.router-link-active的显示样式。
&template&
&div class="menu"&
&ul class="flexRowBetween"&
&li v-for="menu in menus" class="flexItem"&
&router-link :to="menu.path" tag="a" exact&{{menu.title}}&/router-link&
&/template&
export default {
name: 'vueMenu',
msg: 'Menu',
{id: 1, path: '/home', name: 'home', title: '首页'},
{id: 2, path: '/about', name: 'about', title: '关于'},
{id: 3, path: '/service', name: 'service', title: '服务'},
{id: 4, path: '/hello', name: 'hello', title: '测试'}
methods: {
&s tyle scoped lang="scss"&
@import '../css/vars.scss';
width: 100%;
background-color: $lightC
border-top: 1px solid $borderC
width: 100%;
text-align:
line-height: 4
li:not(:last-child){
border-right: 1px solid $borderC
.router-link-active{
background-color: $mainC
color: $lightC
font-size: 1.5
5、定义路由视图并使用路由
在根组件中导入上面创建的路由菜单组件,并使用&router-view&标签定义路由页面显示的区域。
&template&
&div id="app" class="flexColumnBetween"&
&router-view class="mainContainer"&&/router-view&
&vue-menu&&/vue-menu&
&/template&
import VueMenu from './components/VueMenu'
export default {
name: 'app',
components: {
width: 100
height: 100
.mainContainer{
width: 100%;
height: 100%;
overflow-y:
至此,一个基本的路由配置就完成了。运行效果如下:
三、动态路由
动态路由最典型的应用就是详情页(如新闻详情页,商品详情页等),动态路由一般是通过从主页面传递参数(如ID)到详情页面,展示详情信息。如本例使用Service页面来演示。
1、创建详情页路由配置
const routes = [
{path: '/home', name: 'home', component: Home, alias: '/'},
{path: '/about', name: 'about', component: About},
{path: '/service', name: 'service', component: Service},
{path: '/service/:id', name: 'servicedetail', component: ServiceDetail},
{path: '/hello', name: 'hello', component: Hello},
{path: '*', component: NotFoundPage}
2、建立列表页面及链接
这部分主要是对各个列表项目的链接进行配置。
&template&
&div class="flexColumnBetween page servicePage"&
&h1&{{ msg }}&/h1&
&div class="mainContent"&
&li v-for="service in services" class="flexItem"&
&router-link :to="{ path: '/service/' + service.id }"&{{service.title}}&/router-link&
&/template&
export default {
name: 'service',
msg: 'Service',
services: [
{id: 1, title: 'service1', content: 'service1 contents'},
{id: 2, title: 'service2', content: 'service2 contents'},
{id: 3, title: 'service3', content: 'service3 contents'},
{id: 4, title: 'service4', content: 'service4 contents'},
{id: 5, title: 'service5', content: 'service5 contents'}
methods: {
&s tyle scoped lang="scss"&
.servicePage{
.mainContent{
line-height: 3
padding: 0 1
border-bottom: 1px solid #
background-color: #
3、创建详情页组件
&template&
&div class="flexColumnBetween page servicePage"&
&h1&{{ msg }}&/h1&
&div class="mainContent"&
&p&{{ msg }}&/p&
&p&ID: {{serviceId}}&/p&
&p class="back" v-on:click="goback"&返回&/p&
&p class="back" v-on:click="back"&返回&/p&
&/template&
export default {
name: 'ServiceDetail',
msg: 'Service详情页面',
serviceId: null
methods: {
goback () {
this.$router.go(-1)
this.$router.back()
mounted () {
console.log(this.$route)
console.log(this.$router)
this.serviceId = this.$route.params.id
&s tyle scoped lang="scss"&
.servicePage{
.mainContent{
padding: 1
line-height: 3
text-align:
font-size: 1.5
color: #dd3333;
text-decoration:
这里需要注意以下两点:
(1)在每个路由页面,我们都可以获得$route和$router实例,使用这两个实例,可以非常方便的控制路由。
(2)上面的代码使用了$router实例的go方法和back方法来实现跳转。
(3)上面的例子从列表页点击某个列表项进行相应的列表项详情页,但有时候我们需要在列表项详情页点击进入另一个列表项详情页,如上例,从”/service/1″进入”/service/2″的时候,因为这两个页面其实是同一个,Vue-Router是不会重新渲染的,因此,当有这种需求的时候,需要动态监视页面路由的变化,这就需要用到$route实例。
现在改一下详情页ServiceDetail,使得在指定ID的详情页下也可以进入其他详情页,同时,使用watch来动态监视$route对象路由的变化,以使页面内容变化。
改过的代码如下:
&template&
&div class="flexColumnBetween page servicePage"&
&h1&{{ msg }}&/h1&
&div class="mainContent"&
&p&{{ msg }}&/p&
&p&ID: {{serviceId}}&/p&
&p class="back" v-on:click="goback"&返回&/p&
&p class="back" v-on:click="back"&返回&/p&
&li v-for="service in services" class="flexItem"&
&router-link :to="{ path: '/service/' + service.id }"&{{service.title}}&/router-link&
&/template&
export default {
name: 'ServiceDetail',
msg: 'Service详情页面',
serviceId: null,
services: [
{id: 1, title: 'service1', content: 'service1 contents'},
{id: 2, title: 'service2', content: 'service2 contents'},
{id: 3, title: 'service3', content: 'service3 contents'},
{id: 4, title: 'service4', content: 'service4 contents'},
{id: 5, title: 'service5', content: 'service5 contents'}
'$route' (to, from) {
console.log(to)
console.log(from)
this.serviceId = to.params.id
methods: {
goback () {
this.$router.go(-1)
this.$router.back()
mounted () {
console.log(this.$route)
console.log(this.$router)
this.serviceId = this.$route.params.id
&s tyle scoped lang="scss"&
.servicePage{
.mainContent{
padding: 1
line-height: 3
text-align:
font-size: 1.5
color: #dd3333;
text-decoration:
line-height: 3
padding: 0 1
border-bottom: 1px solid #
background-color: #
运行效果:
四、嵌套路由
Vue-Router可以在一个路由页面视图下再嵌套视图,最典型的就是我们常见的Tabs标签式导航。下面一个小例子演示嵌套路由制作一个简单的Tab标签导航。
1、首先制作三个Tab子页面组件
&template&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'AboutOne',
msg: 'About页面的第一个页面'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
&template&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'AboutTwo',
msg: 'About页面的第二个页面'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
&template&
&h1&{{ msg }}&/h1&
&/template&
export default {
name: 'AboutThree',
msg: 'About页面的第三个页面'
methods: {
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
2、配置嵌套路由
改写原来的About路由项,使用children配置项配置嵌套路由
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import Home from './components/Home'
import About from './components/About'
import AboutOne from './components/AboutOne'
import AboutTwo from './components/AboutTwo'
import AboutThree from './components/AboutThree'
import Service from './components/Service'
import ServiceDetail from './components/ServiceDetail'
import Hello from './components/Hello'
import NotFoundPage from './components/NotFoundPage'
const routes = [
{path: '/home', name: 'home', component: Home, alias: '/'},
path: '/about',
name: 'about',
component: About,
children: [
{path: '/about/aboutone', component: AboutOne},
{path: '/about/abouttwo', component: AboutTwo},
{path: '/about/aboutthree', component: AboutThree}
{path: '/service', name: 'service', component: Service},
{path: '/service/:id', name: 'servicedetail', component: ServiceDetail},
{path: '/hello', name: 'hello', component: Hello},
{path: '*', component: NotFoundPage}
export default new VueRouter({
// mode: 'history',
base: '/',
scrollBehavior: function (to, from, savedPosition) {
return savedPosition
3、加入Tab路由菜单项,使用嵌套路由
&template&
&div class="flexColumnBetween page aboutPage"&
&h1&{{ msg }}&/h1&
&ul class="flexRowBetween"&
&li v-for="menu in menus" class="flexItem center"&
&router-link :to="menu.path" tag="a"&{{menu.title}}&/router-link&
&div class="mainContent"&
&router-view&&/router-view&
&/template&
export default {
name: 'about',
msg: 'About',
{id: 1, path: '/about/aboutone', name: 'aboutone', title: 'AboutOne'},
{id: 2, path: '/about/abouttwo', name: 'abouttwo', title: 'AboutTwo'},
{id: 3, path: '/about/aboutthree', name: 'aboutthree', title: 'AboutThree'}
currentPage: null
&s tyle scoped lang="scss"&
.aboutPage{
a{border-bottom: 2px solid #}
.router-link-active{
border-bottom: 2px solid #dd3333;
li:not(:last-child){
border-right: 1px solid #
.active{color: #dd3333;}
以上配置后,一个简单的tab标签式导航效果就可实现了。不过这里存在一个问题,就是当使用/about路径时,我们会看到没有与之匹配的组件页面显示,这种Tabs标签很多时候会默认显示一个tab子页面,最简单的我们可以通过alias来做,假如默认显示第一个tab子页面,只需要在路由配置中第一个tab页面配置加入alias,指向’/about’即可。如下:
path: '/about',
name: 'about',
component: About,
children: [
{path: '/about/aboutone', component: AboutOne, alias: '/about'},
{path: '/about/abouttwo', component: AboutTwo},
{path: '/about/aboutthree', component: AboutThree}
默认的tab视图已显示出来了,这时候一个新的问题是,当前激活视图的菜单样式在/about这个父级页面路径时不起效果。这时候可以手动处理一下,通过动态获取当前的路由路径,如果当前路由路径是父级页面路径/about时,则加上路由激活样式。此时About页面组件代码如下:
&template&
&div class="flexColumnBetween page aboutPage"&
&h1&{{ msg }}&/h1&
&ul class="flexRowBetween"&
&li v-for="menu in menus" class="flexItem center"&
&router-link :to="menu.path" tag="a" exact v-bind:class="{ 'router-link-active': currentPage == '/about' && menu.path == '/about/aboutone'}"&{{menu.title}}&/router-link&
&div class="mainContent"&
&router-view&&/router-view&
&/template&
export default {
name: 'about',
msg: 'About',
{id: 1, path: '/about/aboutone', name: 'aboutone', title: 'AboutOne'},
{id: 2, path: '/about/abouttwo', name: 'abouttwo', title: 'AboutTwo'},
{id: 3, path: '/about/aboutthree', name: 'aboutthree', title: 'AboutThree'}
currentPage: null
'$route' (to, from) {
this.currentPage = to.path
mounted () {
this.currentPage = this.$route.path
&s tyle scoped lang="scss"&
.aboutPage{
a{border-bottom: 2px solid #}
.router-link-active{
border-bottom: 2px solid #dd3333;
li:not(:last-child){
border-right: 1px solid #
.active{color: #dd3333;}
运行效果:
五、编程式导航
Vue-Router除了可以使用&router-link&来实现导航链接,还可以通过$router实例内置方法来实现链接跳转。主要的方法有push/replace/go三个,这三个方法都可以实现跳转,不同的是push是在当前的路由栈中加入新的路由,replace是直接替换掉当前的路由,go则是依据目前的路由栈,通过传入一个整型参数,来实现向前或向后跳转的路由数。
这里简单通过前面示例中的Home页面来演示:
&template&
&h1&{{ msg }}&/h1&
&a v-on:click="goto(1)"&跳转至关于页面&/a&
&a v-on:click="goto(2)"&跳转至关于页面的第二个标签页面&/a&
&a v-on:click="goto(3)"&跳转至服务页面的第3条服务信息&/a&
&a v-on:click="goto(4)"&跳转至测试页面&/a&
&/template&
export default {
name: 'home',
msg: 'Home'
methods: {
goto (param) {
console.log(this.$router)
console.log(this.$route)
switch (param) {
this.$router.push('about')
this.$router.push('/about/abouttwo')
this.$router.push({name: 'servicedetail', params: {id: 3}})
this.$router.push({name: 'hello'})
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
padding: 10
font-size: 16
color: #dd3333;
padding: 10px 0;
六、过渡动画
Vue-Router还可以通过Vue的transition组件实现路由页面间的过渡。transition页面过渡效果主要依赖于CSS3来实现。在Vue-Router中实现路由过渡动效非常简单,只需要定义transition组件,并指定过渡动效名即可。
下面通过简单例子演示Vue-Router中的过渡动效:
1、定义过渡动效:
.slide-fade-enter-active {
transition: all .5
.slide-fade-leave-active {
transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0);
.slide-fade-enter, .slide-fade-leave-to{
transform: translateX(10px);
opacity: 0;
2、在路由页面组件中加入动效组件
&template&
&transition name="slide-fade"&
&h1&{{ msg }}&/h1&
&/transition&
&/template&
更多关于Vue的Transiton效果详情,请参考
七、Vue-Router导航钩子
Vue-Router提供了三个级别的路由钩子,即全局钩子、特定路由独享的钩子和组件内的钩子。通过“导航钩子”, 可以非常方便对整个路由响应过程进行控制。
1、全局钩子影响全局,所有路由跳转都会触发
使用router.beforeEach 注册全局的before钩子:
import Vue from 'vue'
import App from './App'
import router from './router'
console.log(router)
router.beforeEach((to, from, next) =& {
console.log('这是一个全局钩子')
console.log(to)
console.log(from)
console.log(next)
next(true)
/* eslint-disable no-new */
render: h =& h(App)
}).$mount('#app')
2、特定路由独享钩子只影响该特定路由
特定路由独享钩子在路由配置上直接定义,如下面的 beforeEnter 钩子:
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import Home from './components/Home'
import About from './components/About'
import AboutOne from './components/AboutOne'
import AboutTwo from './components/AboutTwo'
import AboutThree from './components/AboutThree'
import Service from './components/Service'
import ServiceDetail from './components/ServiceDetail'
import Hello from './components/Hello'
import NotFoundPage from './components/NotFoundPage'
const routes = [
{path: '/home', name: 'home', component: Home, alias: '/'},
path: '/about',
name: 'about',
component: About,
beforeEnter: (to, from, next) =& {
console.log('这是一个路由钩子,进入了about')
console.log(to)
console.log(from)
console.log(next)
next(true)
children: [
{path: '/about/aboutone', component: AboutOne, alias: '/about'},
{path: '/about/abouttwo', component: AboutTwo},
{path: '/about/aboutthree', component: AboutThree}
{path: '/service', name: 'service', component: Service},
{path: '/service/:id', name: 'servicedetail', component: ServiceDetail},
{path: '/hello', name: 'hello', component: Hello},
{path: '*', component: NotFoundPage}
export default new VueRouter({
// mode: 'history',
base: '/',
scrollBehavior: function (to, from, savedPosition) {
return savedPosition
3、组件内钩子定义于组件内部
组件内钩子直接在组件内定义,有beforeRouteEnter、beforeRouteUpdate和beforeRouteLeave三种组件内钩子。
&template&
&transition name="slide-fade"&
&h1&{{ msg }}&/h1&
&/transition&
&/template&
export default {
name: 'AboutOne',
msg: 'About页面的第一个页面'
methods: {
beforeRouteEnter (to, from, next) {
console.log('这是一个组件内钩子:beforeRouteEnter,进入了about页面第一个子页面')
console.log(to)
console.log(from)
console.log(next)
next(true)
beforeRouteUpdate (to, from, next) {
console.log('这是一个组件内钩子:beforeRouteUpdate,进入了about页面第一个子页面更新了')
console.log(to)
console.log(from)
console.log(next)
next(true)
beforeRouteLeave (to, from, next) {
console.log('这是一个组件内钩子:beforeRouteLeave,离开了about页面第一个子页面')
console.log(to)
console.log(from)
console.log(next)
let sureClose = confirm('确定关闭吗?')
next(sureClose)
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
(1)在完成路由操作时,要调用next方法,以使路由钩子继续执行下去,完成路由导航;
(2)组件内路由钩子的beforeRouteEnter是在渲染组件前就已经调用,因此在这个方法下,$this无法使用。
八、数据获取
使用过AngularJS的ui-router的都知道,我们可以根据实际项目需要,在路由页面(导航)“进入前”或“进入后”去获取远程数据。
1、在路由页面进入后请求数据
&template&
&transition name="slide-fade"&
&h1&{{ msg }}&/h1&
&p v-if="!posts.length"&正在加载数据...&/p&
&div v-if="posts.length"&{{posts}}&/div&
&/transition&
&/template&
import axios from 'axios'
export default {
name: 'AboutTwo',
msg: 'About页面的第二个页面',
mounted () {
this.fetchData()
methods: {
fetchData () {
let that = this
axios.get('http://localhost:3000/posts')
.then(function (response) {
console.log(response)
that.posts = response.data.data
.catch(function (error) {
console.log(error)
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
2、在路由页面进入前请求数据
&template&
&transition name="slide-fade"&
&h1&{{ msg }}&/h1&
&div v-if="posts.length"&{{posts}}&/div&
&/transition&
&/template&
import axios from 'axios'
export default {
name: 'AboutThree',
msg: 'About页面的第三个页面',
methods: {
beforeRouteEnter (to, from, next) {
axios.get('http://localhost:3000/posts')
.then(function (response) {
console.log(response)
if (response.status === 200 && response.data.status) {
next(vm =& {
vm.posts = response.data.data
next(false)
.catch(function (error) {
console.log(error)
next(false)
&s tyle scoped lang="scss"&
$color: #dd3333;
text-align:
font-weight:
以上就是关于Vue-Router的主要介绍内容,更多细节详情可参考。
本文示例代码已托管至
随遇,随缘,随安,随喜!
除特别说明外,本站所有文章均为原创,转载请注明出处和链接。感谢您对本站的支持,感谢您对知识的尊重!}

我要回帖

更多关于 vue怎么配置路由 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信