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 自定义的联动下拉框
Feb 07 Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
jquery中插件实现自动添加用户的具体代码
Nov 15 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 Javascript
常用javascript表单验证汇总
Jul 20 Javascript
node.js实现爬虫教程
Aug 25 Javascript
JS匿名函数实例分析
Nov 26 Javascript
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
js处理包含中文的字符串实例
Oct 11 Javascript
JS实现动态无缝轮播
Jan 11 Javascript
vue瀑布流组件实现上拉加载更多
Mar 10 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 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中动态HTML的输出技术
2006/10/09 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
jQuery 选择器详解
2015/01/19 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
Python修改列表值问题解决方案
2020/03/06 Python
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
业务主管岗位职责
2013/11/20 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
社区好人好事材料
2014/12/26 职场文书
保姆聘用合同
2015/09/21 职场文书
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers