Vue.js系列之vue-router(上)(3)

发布时间 - 2026-01-10 22:15:44    点击率:

说明:

我们项目现在用的是:vue2.0 + vue-cli + webpack + vue-router2.0 + vue-resource1.0.3

如果大家在实践的过程中与本文所说的内容有较大区别的话看看是不是版本问题。

本文是一系列文章,在我对Vue有了更深刻的理解认识之后会对文章及时进行修改或更正。欢迎大家批评指出错误。以下是已完成的文章列表。

 1.Vue.js系列之项目搭建(1)

 2.Vue.js系列之项目结构说明(2)

概述

Vue非常适用于实践单页面应用程序也就是平时大家说的比较多的SPA(single page application),这点应该了解过Vue的应该都知道吧。一般的单页面应用是基于路由或页面之间的链接来形成的,Vue是基于路由和组件的,所以我们今天就来了解下vue-router。vue-router是Vue.js官方的路由插件,它和vue.js深度集成,用于设定访问路径,并将路径和组件映射起来,我们给每个组件一个路由地址,跳转路由相当于组件切换。vue-router的内容还是比较多的,这里我只分享我自己项目中用到的地方,其他地方大家可以看文档啦。

vue-router官网:http://router.vuejs.org/zh-cn/(中)

英文官网你知道啦,直接去掉后面的"zh-cn/"就好了。

开始使用vue-router

这里我假设大家之前都用模块工程的方式实践了一个vue Demo,在此基础上我们添加vue-router。

1.安装

npm install vue-router 

2.在项目main.js中安装路由插件

import Vue from 'vue' 
import VueRouter from 'vue-router' 
Vue.use(VueRouter) 

3.在组件中使用路由

先看下路由跳转的效果吧,大家注意看地址栏变化哈。

下面这个tabBar就是一个组件(偷偷告诉你,在微信小程序中,这个功能直接配置app.json文件就好了)

每个tab点击时路由地址会相应变化,其实是渲染相应的组件,具体我们来看代码。

footer.vue组件

<template> 
  <div class="footer"> 
    <div class="readType" v-if="readType.count">{{readType.count}}</div> 
    <ul class="main-nav"> 
      <li> 
        <router-link to="/home"> 
          <i class="icon-nav icon-nav1"></i><span>首页</span> 
        </router-link> 
      </li> 
      <li> 
        <router-link to="/quan" v-bind:class="{rrouter:activ}"> 
          <i class="icon-nav icon-nav2"></i><span>学友圈</span> 
        </router-link> 
      </li> 
      <li> 
        <router-link to="/friend"> 
          <i class="icon-nav icon-nav3"></i><span>学友</span> 
        </router-link> 
      </li> 
      <li> 
        <router-link to="/find"> 
          <i class="icon-nav icon-nav4"></i><span>发现</span> 
        </router-link> 
      </li> 
      <li> 
        <router-link to="/mine"> 
          <i class="icon-nav icon-nav5"></i><span>我的</span> 
        </router-link> 
      </li> 
    </ul> 
  </div> 
</template> 

这里有几点需要知道:

1.使用 router-link 组件来导航.

2.通过传入 `to` 属性指定链接.

3.<router-link> 默认会被渲染成一个 `<a>` 标签

路由出口

我们前面说了,路由跳转就是相应组件在渲染,那么渲染的内容是怎么显示也页面中的呢,那就是路由出口'<router-view></router-view>'做的事了,路由匹配到的组件将渲染在这里。

路由出口我们可以设置在当前组件中也可以设置在其他组件中,项目中我们就将所有组件都渲染在最大的容器App.vue组件中(我们项目中App组件只作为渲染容器)。

<template> 
 <div id="app"> 
  <router-view></router-view> 
 </div> 
</template> 

JavaScript

定义路由文件可以直接写在main.js文件中,也可以新建一个js文件,因为我们的组件比较多,所以单独把路由拿出来写了一个router.js文件。

// 0. 如果使用模块化机制编程,进入Vue和VueRouter,要调用 Vue.use(VueRouter) 
import Vue from 'vue' 
import VueRouter from 'vue-router' 
Vue.use(VueRouter) 
// 1. 定义(路由)组件。 
// 可以从其他文件 import 进来,我们一般都是建好了组件再来写路由的 
// 所以就会有好多这样的语句。 
import home form "./components/home" 
import login form "./components/login" 
// 2. 定义路由 
 routes: [ //这里跟1.x有挺大区别,有接触的自己看清楚哦 
  { 
   path: '/',  //浏览器网路请求走通之后默认就会去找域名下的根目录, 
   name: 'home', //所以我们就把这个组件作为默认首页 
   component: home 
  }, 
  { 
   path: '/login', 
   name: 'login', 
   component: login 
  } 
  ] 
// 3. 创建 router 实例,然后传 `routes` 配置 
// 你还可以传别的配置参数, 不过先这么简单着吧。 
const router = new VueRouter({   //你就当const是var 
 routes 
//(缩写)相当于 routes: routes 
}) 
// 4. 创建和挂载根实例。 
// 记得要通过 router 配置参数注入路由, 
// 从而让整个应用都有路由功能 
const app = new Vue({ 
 router 
}).$mount('#app') 
// 现在,应用已经启动了! 

总结

上篇先分享到这里,主要了解了有以下几点:

1.vue-router的安装和使用

2.在组件模板中的书写格式

3.知道了路由出口

4.如何定义一个路由

5.创建路由实例和挂载实例

下篇我将给大家继续分享路由的其他用法(项目中用到的):

1.如何实现当前页激活,tab标签同时也激活,即active-class

2.路由跳转时添加过渡动效

3.路由传参及命名路由

4.实现资源懒加载

5.编程式导航

6.router-link的其他表现形式

7.Router构造详细配置

内容有点多,可能还要再分细一点,写详细点。但还是想把自己遇到过的问题,用到的知识点通过自己的理解分享出来。

以上所述是小编给大家介绍的Vue.js系列之vue-router(上)(3),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# vuejs  # router  # 详解Vue.js项目API、Router配置拆分实践  # vue.js vue-router如何实现无效路由(404)的友好提示  # 详解Vue.js搭建路由报错 router.map is not a function  # vue.js中Vue-router 2.0基础实践教程  # Vue.js实战之利用vue-router实现跳转页面  # Vue.js路由vue-router使用方法详解  # Vue.js:使用Vue-Router 2实现路由功能介绍  # Vue.js路由组件vue-router使用方法详解  # Vue.js第二天学习笔记(vue-router)  # 实例讲解Vue.js中router传参  # 跳转  # 比较多  # 给大家  # 几点  # 首页  # 小编  # 官网  # 系列之  # 自己的  # 的是  # 都是  # 就好了  # 就会  # 都有  # 来了  # 在这里  # 在此  # 说了  # 我只  # 是基于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  如何在VPS电脑上快速搭建网站?  如何快速登录WAP自助建站平台?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  潮流网站制作头像软件下载,适合母子的网名有哪些?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  js代码实现下拉菜单【推荐】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  详解阿里云nginx服务器多站点的配置  米侠浏览器网页背景异常怎么办 米侠显示修复  香港网站服务器数量如何影响SEO优化效果?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  如何快速配置高效服务器建站软件?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  微信小程序 闭包写法详细介绍  北京企业网站设计制作公司,北京铁路集团官方网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  网站制作企业,网站的banner和导航栏是指什么?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  nodejs redis 发布订阅机制封装实现方法及实例代码  中山网站推广排名,中山信息港登录入口?  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何快速选择适合个人网站的云服务器配置?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  HTML 中动态设置元素 name 属性的正确语法详解  手机软键盘弹出时影响布局的解决方法  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何实现建站之星域名转发设置?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何用IIS7快速搭建并优化网站站点?  SQL查询语句优化的实用方法总结  C++用Dijkstra(迪杰斯特拉)算法求最短路径  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  新三国志曹操传主线渭水交兵攻略  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?