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 相关文章推荐
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
JQuery获取样式中的background-color颜色值的问题
Aug 20 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
Nov 26 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
Vue2.0 http请求以及loading展示实例
Mar 06 Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 Javascript
javascript实现简单搜索功能
Mar 26 Javascript
js实现前端界面导航栏下拉列表
Aug 27 Javascript
vant中的toast轻提示实现代码
Nov 04 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开发入门教程之面向对象
2006/12/05 PHP
PHP5 安装方法
2007/01/15 PHP
MySQL修改密码方法总结
2008/03/25 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
Javascript 继承机制实例
2009/08/12 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
Python中实现的RC4算法
2015/02/14 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python实现kNN算法
2017/12/20 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
博士生入学考试推荐信
2013/11/17 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
小学生倡议书范文
2014/05/13 职场文书
签约仪式策划方案
2014/06/02 职场文书
应届大学生自荐书
2014/06/17 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
小学教师节活动总结
2015/03/20 职场文书
公积金具结保证书
2015/05/11 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书