vue 开发之路由配置方法详解


Posted in Javascript onDecember 02, 2019

本文实例讲述了vue 开发之路由配置方法。分享给大家供大家参考,具体如下:

概要

用 Vue.js + vue-router 创建单页应用,是非常简单的。使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做的是,将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们。

实现代码

1.在main.js 中引入 router.3

import router from './router/index'

2.在main.js 中使用router

global.globalVm = new Vue({
  el: '#app',
  router,
  render: function(h) {
    return h(App);
  },
  store,
  watch: {
    '$route' (to, from) {
      globalVm.$dialog.loading.close();
      curPath = to.name;
    }
  }
});

这里导入了 router 配置,页面使用这个路由进行页面切换。

3. 组件渲染的位置。

我们可以看到 App.vue 组件,页面组件渲染到 <router-view ></router-view>标签中。

<template>
 <div id="app">
   <transition :name='direction'>
      <keep-alive>
        <router-view :resize="Resize" v-if="$route.meta.keepAlive"></router-view>
      </keep-alive>
    </transition>
    <transition :name='direction'>
        <router-view :resize="Resize" v-if="!$route.meta.keepAlive"></router-view>
      </transition>
    <loading v-model="isLoading" String="加载中" ></loading>
 </div>
</template>

router-view 这个是vue 组件渲染的地方。

4.组件路由配置

vue 开发之路由配置方法详解

index.js 配置如下:

export default new Router({
 routes: [
  {
   path: '/login',
   name: 'login',
   component: Login,
   meta:{
     layer:0
   }
  },
    {
   path: '/',
   name: 'root',
   redirect:"/index",
   meta:{
     layer:1
   }
  },
  {
   path: '/myToDo',
   name: 'myToDo',
   component: resolve => require(['@/components/bpm/MyToDo'], resolve),
   meta:{
     layer:2
   }
  },
  {
   path: '/MyAttend',
   name: 'myAttend',
   component: resolve => require(['@/components/bpm/MyAttend'], resolve),
   meta:{
     layer:2
   }
  },
  {
   path: '/getInstInfo/:instId/:type',
   name: 'getInstInfo',
   component:resolve => require(['@/components/bpm/GetInstInfo'], resolve),
   mata:{
     layer:3
   }
  },

4.1 根组件的配置

{
   path: '/',
   name: 'root',
   redirect:"/index",
   meta:{
     layer:1
   }
  • path 是浏览器显示的路径。
  • name:是组件的命令,我们在流程跳转是,使用name 进行跳转,而不要使用路径跳转,因为 路径可以修改,只要name 不做修改,就可以正常工作。
  • redirect: 这里表示 直接跳转到 /index 组件。
  • meta :这个是可以扩展的属性,我们在这里扩展了一个layer属性。

这个属性是用来组件做切换使用的,通过这个layer 属性,我们可以决定组件的动画。

App.vue 文件

vue 开发之路由配置方法详解

4.2 登录组件的配置

import Login from '@/components/Login'

{
   path: '/login',
   name: 'login',
   component: Login,
   meta:{
     layer:0
   }
}

component: Login

引入组件,指定登录组件。

4.3 懒加载组件

当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

{
   path: '/myToDo',
   name: 'myToDo',
   component: resolve => require(['@/components/bpm/MyToDo'], resolve),
   meta:{
     layer:2
   }
  }

component: resolve => require(['@/components/bpm/MyToDo'], resolve),

4.4 组件参数配置

{
   path: '/task/:taskId',
   name: 'task',
   component:resolve => require(['@/components/bpm/TaskDetail'], resolve),
   mata:{
     layer:3
   }
}

这里我们定义了一个 taskId 参数。

4.5 组件切换

1.页面中进行切换。

<rx-list-item 
          v-for="item in list" 
          :key="item.id" 
          :href="{name:'task',params:{taskId:item.id}}" rel="external nofollow" 
          type='link'
          class="item-a"
        >

这里我们可以看到 ,指定了组件的名称,还有参数配置。

<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>

2.编程方式进行切换。

我们在保存数据成功后,需要跳转到提示组件,我们可以使用一下代码。

router.push({ name: 'user', params: { userId: 123 }})

4.6 路由HISTORY模式

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

url 路径样式为:

http://yoursite.com#/user/1

如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
用js实现的抽象CSS圆角效果!!
May 03 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
Aug 05 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
一个js过滤空格的小函数
Oct 10 Javascript
详解Backbone.js框架中的模型Model与其集合collection
May 05 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
Feb 13 Javascript
angular4中关于表单的校验示例
Oct 16 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
vue通信方式EventBus的实现代码详解
Jun 10 Javascript
Postman如何实现参数化执行及断言处理
Jul 28 Javascript
vue 开发企业微信整合案例分析
Dec 02 #Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 #Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 #Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 #Javascript
angular8和ngrx8结合使用的步骤介绍
Dec 01 #Javascript
angular异步验证防抖踩坑实录
Dec 01 #Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 #Javascript
You might like
php 购物车的例子
2009/05/04 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
JavaScript使用localStorage存储数据
2019/09/25 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
JavaScript实现网页动态生成表格
2020/11/25 Javascript
python列表操作实例
2015/01/14 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
如何通过python画loss曲线的方法
2019/06/26 Python
Django models文件模型变更错误解决
2020/05/11 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
我的长生果教学反思
2014/04/28 职场文书
感恩教育月活动总结
2014/07/07 职场文书
党支部活动策划方案
2014/08/18 职场文书
学习考察心得体会
2014/09/04 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
优秀班组事迹材料
2014/12/24 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
python 爬取华为应用市场评论
2021/05/29 Python
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫