栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Vue.js

Vue 从 Vue Router 0.7.x 迁移 · Vue.js教程

Vue.js 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Vue 从 Vue Router 0.7.x 迁移 · Vue.js教程

只有 Vue Router 2 是与 Vue 2 相互兼容的,所以如果你更新了 Vue ,你也需要更新 Vue Router 。这也是我们在主文档中将迁移路径的详情添加进来的原因。 有关使用 Vue Router 2 的完整教程,请参阅 Vue Router 文档。

Router 初始化

router.start 替换

不再会有一个特殊的 API 用来初始化包含 Vue Router 的 app ,这意味着不再是:

router.start({
  template: ''
}, '#app')

你只需要传一个路由属性给 Vue 实例:

new Vue({
  el: '#app',
  router: router,
  template: ''
})

或者,如果你使用的是运行时构建 (runtime-only) 方式:

new Vue({
  el: '#app',
  router: router,
  render: h => h('router-view')
})

升级路径

运行 迁移助手 找到 router.start 被调用的示例。

Route 定义

router.map 替换

路由现在被定义为一个在 router 实例里的一个routes 选项数组。所以这些路由:

router.map({
  '/foo': {
    component: Foo
  },
  '/bar': {
    component: Bar
  }
})

会以这种方式定义:

var router = new VueRouter({
  routes: [
    { path: '/foo', component: Foo },
    { path: '/bar', component: Bar }
  ]
})

考虑到不同浏览器中遍历对象不能保证会使用相同的键值,这种数组的语法可以保证更多可预测的路由匹配。

升级路径

运行 迁移助手 找到 router.map 被调用的示例。

router.on 移除

如果你需要在启动的 app 时通过代码生成路由,你可以动态地向路由数组推送定义来完成这个操作。举个例子:

// 普通的路由
var routes = [
  // ...
]

// 动态生成的路由
marketingPages.forEach(function (page) {
  routes.push({
    path: '/marketing/' + page.slug
    component: {
      extends: MarketingComponent
      data: function () {
        return { page: page }
      }
    }
  })
})

var router = new Router({
  routes: routes
})

如果你需要在 router 被实例化后增加新的路由,你可以把 router 原来的匹配方式换成一个包括你新添的加路由的匹配方式:

router.match = createMatcher(
  [{
    path: '/my/new/path',
    component: MyComponent
  }].concat(router.options.routes)
)

升级路径

运行 迁移助手 找到 router.on 被调用的示例。

subRoutes 换名

出于 Vue Router 和其他路由库一致性的考虑,重命名为children

升级路径

运行 迁移助手 找到 subRoutes 选项的示例。

router.redirect 替换

现在用一个路由定义的选项作为代替。 举个例子,你将会更新:

router.redirect({
  '/tos': '/terms-of-service'
})

成像下面的routes配置里定义的样子:

{
  path: '/tos',
  redirect: '/terms-of-service'
}

升级路径

运行 迁移助手 找到 router.redirect 被调用的示例。

router.alias 替换

现在是你进行 alias 操作的路由定义里的一个选项。举个例子,你需要在你的routes定义里将:

router.alias({
  '/manage': '/admin'
})

配置这个样子:

{
  path: '/admin',
  component: AdminPanel,
  alias: '/manage'
}

如果你需要进行多次 alias 操作,你也可以使用一个数组语法去实现:

alias: ['/manage', '/administer', '/administrate']

升级路径

运行迁移助手找到 router.alias 被调用的示例。

任意的 Route 属性 替换

现在任意的 route 属性必须在新 meta 属性的作用域内,以避免和以后的新特性发生冲突。举个例子,如果你以前这样定义:

'/admin': {
  component: AdminPanel,
  requiresAuth: true
}

你现在需要把它更新成:

{
  path: '/admin',
  component: AdminPanel,
  meta: {
    requiresAuth: true
  }
}

如果在一个路由上访问一个属性,你仍然会通过 meta 。举个例子:

if (route.meta.requiresAuth) {
  // ...
}

升级路径

运行 迁移助手 找到任意的路由不在 meta 作用域下的示例。

Route 匹配

路由匹配现在使用 path-to-regexp 这个包,这将会使得工作与之前相比更加灵活。

一个或者更多的命名参数 改变

语法稍微有些许改变,所以以/category/*tags为例,应该被更新为/category/:tags+。

升级路径

运行 迁移助手 找到弃用路由语法的示例。

链接

升级路径

运行 迁移助手 找到 v-link 指令的示例。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/10470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号