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的键盘控制事件说明
Apr 15 Javascript
js实时监听文本框状态的方法
Apr 26 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
Oct 31 Javascript
Javascript变量作用域详解
Dec 06 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
vue获取dom元素注意事项
Dec 28 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
vue.js实现双击放大预览功能
Jun 23 Javascript
OpenLayers3实现图层控件功能
Sep 25 Javascript
解决vue项目中出现Invalid Host header的问题
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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
PHP return语句的另一个作用
2014/07/30 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python将unicode和str互相转化的实现
2020/05/11 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
python爬取代理ip的示例
2020/12/18 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
MYSQL基础面试题
2012/05/13 面试题
网络工程师专家职业发展路线
2014/02/14 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
2015年司法所工作总结
2015/04/27 职场文书
小学家长意见怎么写
2015/06/03 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
vue3获取当前路由地址
2022/02/18 Vue.js
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL