vueRouter路由 知识点合集(二)

  • 参数数拼接在url后面
// 路由定义
{
  path: '/describe/:id',
  name: 'Describe',
  component: Describe
}
// 页面传参
this.$router.push({
  path: `/describe/${id}`,
})
// 页面获取
this.$route.params.id
  • 编程式路由导航 params传参 参数不会拼接在路由后面,页面刷新参数会丢失
// 路由定义
{
  path: '/describe',
  name: 'Describe',
  omponent: Describe
}
// 页面传参
this.$router.push({
  name: 'Describe',
  params: {
    id: id
  }
})
// 页面获取
this.$route.params.id
  • 编程式路由导航 query传参 参数数拼接在url后面
// 路由定义
{
  path: '/describe',
  name: 'Describe',
  component: Describe
}
// 页面传参
this.$router.push({
  path: '/describe',
    query: {
      id: id
  `}
)
// 页面获取
this.$route.query.id
  • 路由参数解耦
    一般在组件内使用路由参数 大多数都是这样操作的
	export default {
    methods: {
        getParamsId() {
            return this.$route.params.id
        }
    }
}

在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。
正确的做法是通过 props 解耦

const router = new VueRouter({
    routes: [{
        path: '/user/:id',
        component: User,
        props: true
    }]
})

将路由的 props 属性设置为 true 后,组件内可通过 props 接收到 params 参数

export default {
    props: ['id'],
    methods: {
        getParamsId() {
            return this.id
        }
    }
}

另外你还可以通过函数模式来返回 props

const router = new VueRouter({
    routes: [{
        path: '/user/:id',
        component: User,
        props: (route) => ({
            id: route.query.id
        })
    }]
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue RouterVue.js 官方的路由管理器,它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。下面是 Vue Router 的所有知识点详细介绍: 1. 路由概念 路由是指根据不同的 URL 地址展示不同的页面或视图,常见的有前端路由和后端路由。前端路由是指通过 JavaScript 解析 URL,根据 URL 的不同参数展示相应的视图,不需要刷新页面;后端路由是指通过服务器解析 URL,根据 URL 的不同参数返回相应的 HTML 页面。 2. Vue Router 安装和使用 安装 Vue Router 可以通过 npm 或 yarn,使用时需要在 main.js 中引入并挂载到 Vue 实例上。使用 Vue Router 可以通过 router-link 和 router-view 两个组件实现。 3. 路由配置 路由配置指的是在 Vue Router 中定义路由的规则,包括路由路径、组件、名称、参数等。路由配置可以通过对象字面量或函数返回对象的形式定义,也可以通过单独文件的形式定义。 4. 动态路由 动态路由是指根据不同的参数动态生成路由,常见的参数包括 ID、用户名等。在 Vue Router 中,可以通过冒号(:)定义动态路由参数。 5. 嵌套路由 嵌套路由是指在一个路由中再定义子路由,实现多级路由嵌套的效果。在 Vue Router 中,可以通过 children 属性定义子路由。 6. 命名路由 命名路由是指给路由定义名称,方便在代码中调用和跳转。在 Vue Router 中,可以通过 name 属性定义命名路由。 7. 路由参数 路由参数是指通过 URL 传递参数,常见的有查询参数和动态路由参数,可以通过 $route 对象获取当前路由的参数。 8. 路由导航 路由导航指的是在页面中跳转路由,包括通过 router-link 跳转和通过编程式导航跳转。在 Vue Router 中,可以通过 $router 对象和 $route 对象实现路由导航。 9. 导航守卫 导航守卫是指在路由导航过程中执行的钩子函数,包括全局守卫、路由独享守卫和组件内守卫。导航守卫可以实现路由跳转前的验证、权限控制等功能。 10. 路由元信息 路由元信息是指在路由中定义的额外信息,可以通过 meta 属性定义。路由元信息可以实现页面标题、权限控制等功能。 11. 懒加载 懒加载是指在需要时才加载组件,可以提高应用性能。在 Vue Router 中,可以通过异步组件和 import() 函数实现懒加载。 以上就是 Vue Router 的所有知识点详细介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值