vue-router

  1. vue-router是什么
  2. vue-router有哪几种方法
  3. 怎么使用vue-router

单页面应用: 基于路由和组件在这里插入图片描述

  1. route: 一条路由
  2. routes:一组路由
  3. router: 管理路由
  4. 客户端中的路由: dom元素显示或者隐藏。==》基于hash和基于HTML5 history api

vue-router

实现vue组件之间交互 --》 会被解析为 a href ⇒ 为什么不直接使用a?? 单页面应用,只有主页面一个.html ,a标签无用

实现路由

1. 基于hash实现

原理

监听onhashchange()事件, 仅hash符号之前的内容会被包含在请求中。

路径和组件对应起来,在页面中把组件渲染出来

  1. 页面实现(HTML模板中)
    定义页面中点击 :to =" 去哪”
    显示的地方

  2. js配置路由

    1. 定义route。一条路由两部分组成: path和component
    2. 两条路由,组成routes
      const routes = [
      { path: ‘/home’, component: Home },
      { path: ‘/about’, component: About}
      ]
    3. 对路由进行管理 =》创建路由
      const router = new VueRouter({
      routes
      })
  3. 注入Vue根实例进行使用
    const app = new Vue({
    router
    }).$mount(’#app’)

用户点击 router-link标签时,会去寻找to属性。它的to属性和js中配置的路径(path:’/home’, component: Home) path 对应。找到匹配的组件,最后把组件渲染到标签所在的地方
在这里插入图片描述
在这里插入图片描述

出错点
Non-nested routes must include a leading slash character. Fix the following routes:
非嵌套路由必须包含前导斜杠字符
在这里插入图片描述在这里插入图片描述

动态路由

访问网站并登陆成功, 显示页面+名字 ==》 名字不同。user 是一个组件。不同用户【id不同】 =》同一个user组件中 =》 路由不能写死
vue-router 动态部分: 以:开头

route: {
	path:“user/:id”,
	component: user
}

步骤

  1. 创建user.vue 组件
  2. router中的index.js 引入 user 组件并进行使用
    在这里插入图片描述
  3. App.vue中与路由建立连接
    在这里插入图片描述

原理

  1. 整个vue-router注入到根实例
  2. 组件内部,通过this.$route来获取到router实例
  3. params属性获得动态部分。

动态路由来回切换,组件不发生变化,只能使用watch来监听$route的变化
在这里插入图片描述
==嵌套路由 ===》 childrens
在这里插入图片描述在这里插入图片描述
编程式导航

2. h5的history实现

从图可以看出,通过hash方式进行路由会有一个丑陋的 # 。因此就有了基于history的方法实现
在这里插入图片描述

1. history实现方法

声明是history模式

    • mode:‘history’
      匹配不到任何资源的时候,要返回一个页面【Error.vue】 避免返回404错误页面
  1. {path: ‘*’, component:Error}
    在这里插入图片描述
    没有啦!!开心
    在这里插入图片描述

2. history实现原理

  1. 浏览器点击后退按钮或js调用history.back => 触发onpopstate事件
  2. pushState 往history对象里添加一个新的历史记录
  3. replaceState是替换history对象中的当前历史

缺陷: 直接访问二级页面或在页面刷新,会出现404 错误 ==》 重定向

### Vue Router 安装 为了使用 Vue Router,在项目中需先完成其安装。推荐的方式是利用 npm 或 yarn 来添加依赖: ```bash npm install vue-router # 或者 yarn add vue-router ``` 这一步骤确保了开发环境中有最新版本的 Vue Router 可供调用[^3]。 ### 配置 Vue Router 配置 Vue Router 主要涉及创建路由实例并将其挂载到 Vue 应用上。下面是一个简单的例子来展示如何设置基本的路由功能: ```javascript // 创建 routes.js 文件定义路径映射关系 import { createRouter, createWebHistory } from 'vue-router' import Home from './views/Home.vue' import About from './views/About.vue' const routes = [ { path: '/', name: 'Home', component: Home, }, { path: '/about', name: 'About', component: About, } ] const router = createRouter({ history: createWebHistory(), routes // 缩写为 `routes: routes` }) export default router; ``` 这段代码展示了如何导入必要的模块,定义页面组件对应的路径以及初始化路由器对象[^1]。 ### 使用 Vue Router 一旦完成了上述两步操作之后就可以在应用入口文件 main.js 中引入刚刚创建好的路由实例,并传给 Vue 实例: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` 这样就成功集成了 Vue Router 到应用程序当中去了。 对于更复杂的场景比如嵌套路由、导航守卫等功能,则可以参阅官方文档获取更多指导。 ### 示例 这里给出一个完整的简单案例用于理解整个流程: #### 1. 安装 VueVue Router 假设已经有一个基于 Vue CLI 初始化的新工程,执行如下命令即可获得所需库支持: ```bash npm install vue@next vue-router@next ``` #### 2. 设置路由表 编辑 src/router/index.js 添加如下内容: ```javascript import { createRouter, createWebHashHistory } from "vue-router"; import HelloWorld from "../components/HelloWorld"; const routes = [{ path: "/", component: HelloWorld }]; const router = createRouter({ history: createWebHashHistory(), routes, }); export default router; ``` #### 3. 修改主程序启动逻辑 最后调整 src/main.js 如下所示: ```javascript import { createApp } from "vue"; import App from "./App.vue"; import router from "./router"; createApp(App).use(router).mount("#app"); ``` 以上就是关于 Vue Router 的快速入门指南,涵盖了从零开始构建带有路由功能的应用所需的全部知识点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值