美文网首页全栈工程师
vue进阶 - vue-router安装及使用

vue进阶 - vue-router安装及使用

作者: 阿尔法乀 | 来源:发表于2017-10-19 14:38 被阅读219次

    官方文档地址:https://router.vuejs.org/zh-cn/

    介绍

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。

    安装

    直接下载 / CDN
    https://unpkg.com/vue-router/dist/vue-router.js
    NPM
    在终端通过cd命令进入到上一篇文章中创建的my-demo1项目目录里,然后使用以下命令进行安装:

    npm install vue-router

    安装成功后, 可以查看package.json文件,你会发现多了"vue-router": "^3.0.1"的配置。如下:

    "dependencies": {
    "vue": "^2.5.2",
    "vue-router": "^3.0.1"
    },

    如果在一个模块化工程中使用它,在必须要通过 Vue.use() 明确地安装路由功能:

    import Vue from 'vue'
    import VueRouter from 'vue-router' //ES6语法导入
    Vue.use(VueRouter) //注册

    如果采用vue-cli脚手架安装,安装的时候会自带vue-router,main.js文件中引用

    import router from './router' //ES6语法导入
    new Vue({
      el: '#app',
      router, //注册
      template: '<App/>',
      components: { App }
    })

    使用

    router/index.js文件,管理路由器的创建:
    第一步:加载模块

    import Vue from 'vue'
    import Router from 'vue-router'
    import Index from '../views/home/index' // import命令加载这个模块
    import indexHome from '../views/home/children/index'
    import addHome from '../views/home/children/add'

    第二步:

    Vue.use(Router) //注册

    第三步:定义路由,包括二级路由

    export default new Router({
     //mode:'history',
     routes: [ {
       path: '/',
       name: 'Index',
       component: Index,
       children:[
        {path:'',component:indexHome}, {path:'add',component:addHome}
      ] },
    })
    第四步:使用定义好的路由
    第一种使用方式:

    <router-link to='/'>首页</router-link>
    <router-link to='/add'>子页面</router-link>
    

    第二种使用方式

    this.$router.push('/')
    this.$router.push('/add')
    

    History 模式

    vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
    如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

    const router = new VueRouter({
      mode: 'history',
      routes: [...]
    })
    

    当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!
    不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。
    所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。
    建议:后台在没有配置的情况下,不建议开启history 模式,否则项目编译过后的页面打开空白,本地运行正常。
    更多资料建议查看官方文档

    相关文章

      网友评论

      • 雪燃归来:this.$router.push('/') this.$router.push('/add'),大神这个该怎么用呀

      本文标题:vue进阶 - vue-router安装及使用

      本文链接:https://www.haomeiwen.com/subject/fwmuuxtx.html