这里有新鲜出炉的 vue.js 教程,程序狗速度看过来!
Vue.js 是构建 web 界面的 JavaScript 库,提供数据驱动的组件,还有简单灵活的 API,使得 MVVM 更简单。
这篇文章主要介绍了 Vue.js 系列之 vue-router(上)(3) 的相关资料, 非常不错,具有参考借鉴价值,需要的朋友可以参考下
说明:
我们项目现在用的是: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),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 phperz 网站的支持!
来源: http://www.phperz.com/article/17/0611/328950.html