美文网首页Vue学习我爱编程
Vue路由之实例配置

Vue路由之实例配置

作者: klmhly | 来源:发表于2018-06-08 14:06 被阅读1984次

    1. 参数
    mode: 默认vue路由在浏览器的url带“#”,如果想去掉#,就要把mode选项设为‘history’
    base: 应用的基路径,所有的路由path前面url会添加一个基路径
    linkActiveClass:全局配置 <router-link> 的默认“激活 class 类名”,<router-link>的路径匹配了浏览器url的一部分,就加上这个类。
    linkExactActiveClass:精确激活的默认的 class,必须路径完全匹配
    scrollBehavior:对于浏览过的网页保留滚动记录
    fallback:如果浏览器不支持history上的形式,则默认启用哈希方式
    parseQuery:提供自定义查询字符串的解析函数
    stringifyQuery:提供自定义查询字符串反解析函数

    2. API

    # mode
    • 类型: string
    • 默认值: "hash" (浏览器环境) | "abstract" (Node.js 环境)
    • 可选值: "hash" | "history" | "abstract"
      配置路由模式:
      • hash: 使用 URL hash 值来作路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器。
      • history: 依赖 HTML5 History API 和服务器配置。查看 HTML5 History 模式
      • abstract: 支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器的 API,路由会自动强制进入这个模式
    # base
    • 类型: string
    • 默认值: "/"
      应用的基路径。例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"
    # linkActiveClass
    • 类型: string
    • 默认值: "router-link-active"
      全局配置 <router-link> 的默认“激活 class 类名”。参考 router-link
    # linkExactActiveClass
    • 类型: string
    • 默认值: "router-link-exact-active"
      全局配置 <router-link> 精确激活的默认的 class。可同时翻阅 router-link
    # scrollBehavior
    • 类型: Function
      签名:
      type PositionDescriptor =
        { x: number, y: number } |
        { selector: string } |
        ?{}
      
      type scrollBehaviorHandler = (
        to: Route,
        from: Route,
        savedPosition?: { x: number, y: number }
      ) => PositionDescriptor | Promise<PositionDescriptor>
      
      
      更多详情参考滚动行为
    # parseQuery / stringifyQuery
    • 类型: Function
      提供自定义查询字符串的解析/反解析函数。覆盖默认行为。
    # fallback
    • 类型: boolean
      当浏览器不支持 history.pushState 控制路由是否应该回退到 hash 模式。默认值为 true
      在 IE9 中,设置为 false 会使得每个 router-link 导航都触发整页刷新。它可用于工作在 IE9 下的服务端渲染应用,因为一个 hash 模式的 URL 并不支持服务端渲染。

    3. 例子

    import Router from 'vue-router'
    import routes from './routers'
    
    // 创建路由实例
    export default () => {
      return new Router({
        routes,
    
        // 如果不配置mode,默认浏览器的url带“#”,像这样http://localhost:8000/#/app
        mode: 'history', 
    
        // 加了base配置,在所有的路由path前面url会添加一个base,像这样http://localhost:8000/base/app
        base: '/base/',
    
        // 下面两个都用来给<router-link>添加全局类
        // 这个是<router-link>的路径匹配了浏览器url的一部分,就会给<router-link>标签加上active-link这个类
        linkActiveClass: 'active-link', 
    
        // 这个是<router-link>的路径完全匹配了浏览器url,才会给<router-link>标签加上exact-active-link这个类
        linkExactActiveClass: 'exact-active-link', 
    
        // 如果浏览器不支持history上的形式,则默认启用哈希方式,也就是带个#
        fallback: true,
    
        //配置滚动记录
        scrollBehavior (to, from, savedPosition) {
          if (savedPosition) {
            return savedPosition
          } else {
            return { x: 0, y: 0 }
          }
    
        }
      })
    }
    

    相关文章

      网友评论

        本文标题:Vue路由之实例配置

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