vue中路由管理(vue-router,page)使用总结

现在的项目都以模块化的方式去开发,所以在这样的开发模式下,如何更好的去管理路由是开发中所需要考虑的重点,幸运的是当前的开发中已经有了成熟的中间件去管理,我们只需要用就可以了

下面是我在学习vue-router的时候在原来基础上修改出来的demo,也是为了有助于对vue-router的理解

首先理解下vue官网的一个示例demo

https://jsfiddle.net/yyx990803/xgrjzsup/

 

这里展示的是完成一个路由所必须的基础步骤,由于这里不是模块化的开发模式,下面就是一个简单的demo使用模块化开发

github:https://github.com/chrisvfritz/vue-2.0-simple-routing-example

这里首先提供一个叫page.js的三方包去管理路由,将大幅度简化原有代码的书写比例,链接如下:

page.js:https://github.com/visionmedia/page.js

使用page后的代码简化:https://github.com/chrisvfritz/vue-2.0-simple-routing-example/compare/master...pagejs

可以拉下来自己测试下,在原来的基础上我想去使用vue-router,这里因为个人原因代码无法上传github,所以只能列出来代码防止以后忘记,便于复习

首先是文件的目录树

首先是 main.js,这里绑定了路由的文件,挂载了路由组件显示的位置

import Vue from 'vue'
import VueRouter from 'vue-router'
import routerConfig from '../src/routes.js'
import appHome from './pages/appHome.vue'
Vue.use(VueRouter)
const router = new VueRouter({
  routes:routerConfig
}) 
const app = new Vue({
  router,
  render:h=>h(appHome)
}).$mount('#app');

apphome:这里是主路由页面,里面定义了两个路由和一个展示路由组件的位置

<template>
    <div>
        <p>
            <router-link to="/home">Home</router-link>
            <router-link to="/home/about">/home/About</router-link>
        </p>
        <router-view></router-view>
    </div>  
</template>
<script>
export default {
    name:'appHome',
}
</script>

router.js:定义路由地址和组件的绑定关系,这里加载布局有层级关系(即通过路由一层层的去加载布局组件),也是布局组件加载到每一个组件的主要部分

import Home from './pages/Home.vue'
import About from './pages/About.vue'
import MainLayout from "../src/layouts/Main.vue";
import notFound from './pages/404.vue'
const routerConfig=[{
  path: '/home', component: MainLayout,//加载布局组件
  children:[
    {path:'',component:Home},
    {path:'about',component:About}
  ]
},
{
  path:'/about',component:notFound
}
]
export default routerConfig

main.vue:主要页面布局

<template>
  <div class="container">
    <ul>
      <li>
        <router-link to="/home">Home</router-link>
        <router-link to="/about">About</router-link>
      </li>
    </ul>
   <router-view></router-view>
  </div>
</template>

<script>
  import VLink from '../components/VLink.vue'

  export default {
    name: 'main-view',
    components: {
      VLink
    }
  }
</script>

<style scoped>
  .container {
    max-width: 600px;
    margin: 0 auto;
    padding: 15px 30px;
    background: #f9f7f5;
  }
</style>

vlink.vue,这里很鸡肋,就是一个展示链接是否访问的

<template>
  <a
    v-bind:href="href"
    v-bind:class="{ active: isActive }"
   
  >
  </a>
</template>

<script>
  export default {
    props: {
      href: {
        type:String,
        required: true 
      }
    },
    computed: {
      isActive () {
         return this.href === window.location.pathname
      }
    }
  }
</script>

<style scoped>
  .active {
    color: cornflowerblue;
  }
</style>

home:页面文件,跟about页面类似展示内容

<template>
  <div>
      <p>Welcome home</p>
  </div>
</template>

<script>
export default {
  name: 'Home',
  mounted(){
    console.log('is home')
  }

};
</script>

大概的文件都放在上方了,使用vue-router路由的主要注意点就是如何去加载布局组件的问题,他的事项是将路由的链接和组件绑定在一起,所以可以通过配置子链接的方式去一层层的加载组件布局

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue使用vue-router进行路由管理是非常方便的。在静态页面也可以使用vue-router,只需要在静态页面引入vue.js和vue-router.js,并按照vue-router使用方法进行配置即可。 下面是一个使用vue-router的静态页面示例: 1. 在静态页面引入vue.js和vue-router.js: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue Router Static Page</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script> </head> <body> <div id="app"> <router-view></router-view> </div> </body> </html> ``` 2. 在静态页面配置路由: ```js const Foo = { template: '<div>foo</div>' } const Bar = { template: '<div>bar</div>' } const router = new VueRouter({ routes: [ { path: '/foo', component: Foo }, { path: '/bar', component: Bar } ] }) const app = new Vue({ router }).$mount('#app') ``` 在上面的代码,我们首先定义了两个组件`Foo`和`Bar`,然后配置了路由对象`router`,将`Foo`和`Bar`组件分别映射到了`/foo`和`/bar`路径上。最后,我们创建了一个Vue实例,并将`router`对象作为参数传递给Vue实例的`router`选项,这样就完成了vue-router的配置。 通过上述配置,我们就可以在静态页面使用vue-router进行路由管理了。当用户访问`/foo`路径时,页面会显示`Foo`组件的内容,访问`/bar`路径时,页面会显示`Bar`组件的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值