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 相关文章推荐
基于jquery库的tab新形式使用
Nov 16 Javascript
js 日期比较相关天数代码
Apr 02 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 Javascript
JS中的三个循环小结
Jun 20 Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 Javascript
vscode下的vue文件格式化问题
Nov 28 Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
Vue中keep-alive组件作用详解
Feb 04 Javascript
Node.js API详解之 string_decoder用法实例分析
Apr 29 Javascript
详解JavaScript中的链式调用
Nov 27 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下通过POST还是GET来传值
2008/06/05 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python入门学习指南分享
2018/04/11 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
servlet面试题
2012/08/20 面试题
外科实习自我鉴定
2013/10/06 职场文书
大学生简历的个人自我评价
2013/12/04 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
美术教师个人总结
2015/02/06 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android