vue.router和vue.route

Vue Router 和 Vue Route 是 Vue.js 中用于构建单页面应用(SPA)路由系统的两个核心概念。Vue Router 是 Vue.js 的官方路由管理器,而 Vue Route 则是在 Vue 组件内部通过 $route 对象来访问当前路由的信息。

Vue Router 的使用

Vue Router 主要用于定义路由规则、创建导航链接以及渲染与 URL 对应的组件。以下是一个简单的使用示例:

1. 安装和引入 Vue Router

首先,你需要在项目中安装 Vue Router:

复制代码
npm install vue-router

然后,在你的 Vue 应用中引入并使用 Vue Router:

复制代码
import Vue from 'vue';  
import Router from 'vue-router';  
import Home from './views/Home.vue';  
import About from './views/About.vue';  
  
Vue.use(Router);  
  
export default new Router({  
  routes: [  
    {  
      path: '/',  
      name: 'home',  
      component: Home  
    },  
    {  
      path: '/about',  
      name: 'about',  
      component: About  
    }  
  ]  
});
2. 在 Vue 应用中使用路由

在你的 Vue 应用入口文件(如 main.js)中,引入并使用这个路由实例:

复制代码
import Vue from 'vue';  
import App from './App.vue';  
import router from './router';  
  
new Vue({  
  router,  
  render: h => h(App)  
}).$mount('#app');
3. 在组件中创建导航链接和渲染路由内容

在 App.vue 或其他组件中,使用 <router-link> 创建导航链接,并使用 <router-view> 来渲染当前路由对应的组件:

复制代码
<template>  
  <div id="app">  
    <nav>  
      <router-link to="/">Home</router-link> |  
      <router-link to="/about">About</router-link>  
    </nav>  
    <router-view></router-view>  
  </div>  
</template>

Vue Route 的使用

Vue Route 主要通过 $route 对象在 Vue 组件内部访问当前路由的信息。以下是一些常用的 $route 属性:

  • $route.path:字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"。
  • $route.params:一个包含动态片段和星号片段的键值对的对象。
  • $route.query:一个包含查询参数的对象。例如,对于路径 "/foo?user=1",则有 $route.query.user == 1。
  • $route.name:当前路由的名字(如果有的话)。
示例:在组件中访问路由信息

假设你有一个组件,你想根据当前路由的参数或查询参数来改变其内容。你可以这样使用 $route:

复制代码
<template>  
  <div>  
    <h1>User Info</h1>  
    <p>User ID: {{ $route.params.id }}</p>  
    <p>Query Parameter: {{ $route.query.param }}</p>  
  </div>  
</template>  
  
<script>  
export default {  
  name: 'UserInfo',  
  watch: {  
    '$route.params': function(toParams, fromParams) {  
      // 对路由变化作出响应...  
    }  
  }  
}  
</script>

在这个示例中,我们创建了一个名为 UserInfo 的组件,它显示当前路由的 id 参数和查询参数 param。我们还使用了 Vue 的 watch 选项来监听 $route.params 的变化,以便在路由参数变化时执行某些操作。

综合示例

将 Vue Router 和 Vue Route 结合使用,你可以构建复杂的单页面应用。以下是一个更综合的示例:

定义路由时包含一个带有参数的路由:

复制代码
export default new Router({  
  routes: [  
    // ...其他路由  
    {  
      path: '/user/:id',  
      name: 'user',  
      component: User  
    }  
  ]  
});

在 User 组件中,根据 $route.params.id 显示不同用户的信息:

复制代码
<template>  
  <div>  
    <h1>User {{ $route.params.id }}</h1>  
    <!-- 根据 $route.params.id 加载和显示用户数据 -->  
  </div>  
</template>  
  
<script>  
export default {  
  name
相关推荐
const_qiu19 分钟前
第 2.5 章 2.5.6:前端登录、Token 无感续签与路由守卫
java·前端·人工智能·状态模式
用户831348593069829 分钟前
Vue3 事件:常用用法与开发高频坑点
前端·javascript·vue.js
weixin_4462608529 分钟前
ReAct‑Evolve:基于轨迹反馈的ReAct智能体自主提示演化系统
前端·react.js·前端框架
其实防守也摸鱼32 分钟前
存储管理:页面置换算法学习任务(测验题要求给出置换页面顺序,缺页次数,缺页率)
android·前端·数据库·学习·oracle·自动化
怒放的生命199143 分钟前
前端项目 Docker 打包实操指南
前端·docker·容器
tedcloud1231 小时前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
时间的情敌1 小时前
《WebGIS 前端的成长路线,三维可视化工程师需要掌握什么》
前端·状态模式
漫步人生走在路上1 小时前
用小语种SEO突破外贸B2B天花板:法语、德语市场的实测数据
开发语言·前端·javascript·人工智能·搜索引擎·ecmascript
变与不变8061 小时前
jQuery 核心语法与 jQuery AJAX
前端·ajax·jquery