vue-router 学习快速入门


Posted in Javascript onMarch 01, 2017

vue-router 快速入门

配置路由

$ npm install vue-router --save

routes.js

import Home from './pages/Home.vue'
import Gifs from './pages/Gifs.vue'
import User from './pages/User.vue'

export const routes = [
  { path: '', component: Home },
  { path: '/gifs', component: Gifs },
  { path: '/user/:id', component: User }
  //指定路由和对应要渲染的组件
  //404的path应该是'*',要放在最末尾,当前面的都匹配不到时才匹配到404页面
  //this.$route.params.id 可以从路由中拿到id数据
]

main.js

import VueRouter from 'vue-router'
import { routes } from './routes'

Vue.use(VueRouter)
//路由初始化
const router = new VueRouter({
 routes
})

//将路由注入根组件
new Vue({
 el: '#app',
 ...
 router,
 render: h => h(App)
})

App.vue

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

在模板中标注出组件渲染的位置

#号的含义

#号前表示的是发送给服务端的请求,要求返回html文件,而#号后表示的是发送给本地js的请求以寻求解决

路由参数动态绑定

使用watch

watch: {
  '$route'(to,from) {
    //to当前路由,from上一个路由
    this.id = to.params.id
  }
}

路由的数据传递

<router-link :to="{ name: 'userEdit', params: { id: $route.params.id }, query: { locale: 'en', list: 2 } }"></router-link>

传query参数可以达到地址栏出现/?locale=en&list=2

通过 $route.query.键名 来访问

命名视图

router-view 可以通过配置名字 name 来指定组件渲染的位置,增加了组件的复用性,比如分成 header main hero footer 来分别在一个视图中的不同位置上加载不同的组件

组件懒加载

我们只需要加载我们需要的组件呈现给用户,而其他不需要第一时间加载的组件,可以使用 webpack 实现异步加载,只在需要的时候才会发出请求,请求加载另一个组件

routes.js

const User = resolve => {
  require.ensure(['./components/user/User.vue'], () => {
    resolve(require('./components/user/User.vue'))
  }, 'GroupName')
}
//webpack 异步加载,通过组名,将要同时一起加载的组件打包加载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript操纵Cookie实现购物车程序
Feb 15 Javascript
Prototype Array对象 学习
Jul 19 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
javascript动态创建链接的方法
May 13 Javascript
javascript封装的sqlite操作类实例
Jul 17 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
Mar 21 Javascript
JS库中的Particles.js在vue上的运用案例分析
Sep 13 Javascript
iview给radio按钮组件加点击事件的实例
Sep 30 Javascript
vue动态路由配置及路由传参的方式
May 23 Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 #Javascript
Angular之指令Directive用法详解
Mar 01 #Javascript
js for循环倒序输出数组元素的实例
Mar 01 #Javascript
JSON与JS对象的区别与对比
Mar 01 #Javascript
JavaScript下拉菜单功能实例代码
Mar 01 #Javascript
Angular2 路由问题修复详解
Mar 01 #Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 #Javascript
You might like
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python格式化字符串实例总结
2014/09/28 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
对python字典过滤条件的实例详解
2019/01/22 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
交通事故调解协议书
2014/04/16 职场文书
核心价值观演讲稿
2014/05/13 职场文书
机械机修工岗位职责
2014/08/03 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
投标承诺函格式
2015/01/21 职场文书
特岗教师个人总结
2015/02/10 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL