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 相关文章推荐
分享别人写的一个小型js框架
Aug 13 Javascript
javascript之典型高阶函数应用介绍
Jan 10 Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
May 13 jQuery
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
彻底理解js面向对象之继承
Feb 04 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 Javascript
JS数组中对象去重操作示例
Jun 04 Javascript
angular共享依赖的解决方案分享
Oct 15 Javascript
解决vue-cli输入命令vue ui没效果的问题
Nov 17 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 常用函数库和一些实用小技巧
2009/01/01 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
详解React 元素渲染
2020/07/07 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
python和php哪个更适合写爬虫
2020/06/22 Python
综合实践活动方案
2014/02/14 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
2015年化验员工作总结
2015/04/10 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android