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实现网站超链接和图片提示效果
Mar 21 Javascript
jQuery实现按键盘方向键翻页特效
Mar 18 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
Sep 24 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
怎样在vue项目下添加ESLint的方法
May 16 Javascript
vue实现随机验证码功能(完整代码)
Dec 10 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 Javascript
如何区分vue中的v-show 与 v-if
Sep 08 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中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
numpy数组拼接简单示例
2017/12/15 Python
python学习基础之循环import及import过程
2018/04/22 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python 列表推导式使用详解
2019/08/29 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
酒店前台接待岗位职责
2013/12/03 职场文书
创意活动策划书
2014/01/15 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
遗嘱范文
2015/08/07 职场文书
2016入党心得体会范文
2016/01/06 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server