vue的路由

声明:该文章只适用于vue 2.x版本的项目。
一、概念
vue遵循SPA(Single page application)单一页面应用程序,只有一个完整的页面,它在加载页面时,不会加载整个页面,而是只更新某个指定的容器中的内容。
vue中路由控制显示哪个页面,这些显示的页面还是在主页面中显示(在主页面的某一块区域显示,即通过路由达到局部刷新的效果。
路由通过url在主页面的不同地方显示页面。

二、通过例子来显示如何使用路由
1、下载vue-router.js包
命令:npm install --save vue-router
在这里插入图片描述
安装好后package.json中添加以下依赖
在这里插入图片描述

2、新建一个view文件夹,里面存放“页面”的.vue文件(这里添加了First.vue和Second.vue两个页面)。注意,页面和组件本质上都是.vue文件,只是用法不同。
在这里插入图片描述
First.vue文件:
在这里插入图片描述
Second.vue文件:
在这里插入图片描述

3、修改main.js配置文件
在这里插入图片描述
4.在主页面App.vue中添加router-view标签,该标签的位置即是在不同url下First.vue和Second.vue页面显示在主页面中的位置。
在这里插入图片描述
5.效果如下
启动项目:
在这里插入图片描述
修改路径:
在这里插入图片描述
在这里插入图片描述
三、让JS控制页面的跳转
实例:点击按钮实现页面跳转
(1)在App.vue文件中添加按钮标签:
在这里插入图片描述
(2)添加事件:
在这里插入图片描述
对跳转到Second页面的按钮做同样的操作。
(3)添加事件函数
在这里插入图片描述
(4)项目效果
运行项目
在这里插入图片描述
点击第一个按钮:
在这里插入图片描述
点击第二个按钮:
在这里插入图片描述
四、优化路由代码结构
将main.js文件中关于路由的代码单独取出放入另一个新建的.js文件中
在router文件夹的index.js中写入以下内容:
在这里插入图片描述
注意下面的代码需要放在main.js文件中:在这里插入图片描述
注意:index.js文件末尾加一行(防止router定义却未用时报错):
在这里插入图片描述
export default语法表示其他地方引入这个文件时,默认就使用router对象。
main.js文件中加一行:
在这里插入图片描述
通过上述操作与三中的实例效果相同。
说明:路径中的@/是webpack设置的路径别名,代表src路径,在vue模板里面的build/webpack.base.conf文件里可以查看:
在这里插入图片描述
补充VUE中的export default和export:
vue 通过webpack实现模块化,使用export导出模块,使用import引入模块。
(1)export
一个独立的文件是一个模块,该文件内部的所有变量外部无法获取。如果想要外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。下面是一个JS文件,里面使用export命令输出变量:

// profile.js
export var firstName = 'Jack';
export var lastName = 'Lucy';
export var  year = 1958;

上面的代码是profile.js文件,保存了用户信息。ES6将其视为一个模块,里面用export命令对外部输出了三个变量。
export除了上面的写法,还有另外一种:

// profile.js
var firstName = 'Jack';
var lastName = 'Lucy';
var  year = 1958;

export {firstName, lastName, year};

上面的代码在export命令之后,使用大括号指定所要输出的一组变量。优先考虑这种写法,因为这样就可以写在文件尾部。
export除了输出变量,还可以输出函数或类:

export function multiply(x, y){
return x * y;
}

export还可以输出vue对象(组件),如下图:
在这里插入图片描述
import命令接受一对花括号,里面指定从其他模块导入的变量名。花括号里面的变量名,必须与被导入模块(这里为profile.js)对外接口的名称相同。

import lastName from './profile.js'

如果想为输入的变量重新取一个名字,import命令要使用as关键字,将输入的变量重命名。

import { lastName as surname} from './profile.js'

(2)export default
export default命令,为模块指定默认输出。使用import指令导入使用export命令导出的组件时,用户需要知道所要加载的变量名或函数名,否则无法加载,export default可以解决这个问题。。
例子:

//export-defaut.js
export default function(){
console.log('foo');
}

其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。

//import-default.js
import customName from './export-default'

本质上,export default就是输出一个叫做default的变量和方法,然后系统允许你为它取任意名字。因为export default命令只是输出一个叫做defalut的变量,所以它后买你不能跟变量声明语句,但可以匿名。

//demo1.js
export default {
a:'hello',
b:'world'
}

对应的引入方式:

//demo2.js
import obj from 'demo1'

(3)export与export default区别
export可以导出多个命名模块,导入多个模块用花括号括起来且名字与导出一致(或用as重命名);export default只能导出一个模块,import命令导入可以任意命名,且不使用花括号。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值