Vue.js学习之路vue学习

使用vue-router路由

2017-05-13  本文已影响707人  AiDede

通过使用Vue-router路由创建多组件的SPA。


项目初始化

image.png image.png

我们发现他引用了vue-router插件,然后还引用了Hello组件,起名Hello,然后New了一个路由实例,定义了一个router数组,数组中有一个对象,有三个属性,分别是path路径、name路由别名,和component对应组件,这里的意思就是localhost:8080/地址对应的组件是Hello组件。

image.png

发现多了一个<router-view>标签,这个标签是什么意思呢?我们在浏览器里打开这个页面,打开开发者工具,开一下他的源码

image.png

我们发现,Hello组件里的内容,被引入到了<router-view>的标签里了,哇!


试着创建自己的路由规则

image.png

这里都是固定的写法哈,export default{}固定写法,name写组件的名字,一般与文加同名,data()是个函数,return用到的data对象啥的,都是基本语法哈哈。

image.png image.png

然而没有效果。
Emm。。。
我们检查一下代码
(检查中。。。)
啊,我们发信啊在Haha.vue,我们有个问题:

image.png
image.png

啊哈哈哈哈!!

image.png

然后我们去访问一下localhost:8080/localhost:8080/haha:

image.png

你会发现,为啥我访问/haha,不能到我的页面呢??我们在看看访问/页面:

image.png

那么为啥在目录前面,都有一个#/呢?这个我也不太清楚哈哈哈哈,我估计这更ThinkPHP中index.php的效果差不多,这个我们后期也可以通过Apache或者Nignx的Rewirte给他去掉,这里先不管啦,大家记得有这么个东西就好啦。


跳转方法

我们先看看在html里的写法:

image.png

我们在公共部分写了两行字,用<router-link>标签括起来了,里面的属性有to, 填写目标地址。
关于这个标签,可参考文档
这个标签还有很多用法,比如带参数,数据绑定,还可以绑定to,还可以在to里填写路由的命名和参数等。

编程式跳转

在js里,我们有href.location这种用法,那么我如果想在vue函数中跳转呢?比如我请请求某个数据,然后如果返回成功,我就跳转到某个页面。这里我们用按钮点击来模拟这个事件。

image.png image.png

这里解释一下这个this.$router.push,文档上的用法是:

image.png
我看了文档,就直接写router.push,但是报错,说是没有import这个插件,我就很纳闷,然后在main.js引入了Vue-router插件,但是还是报错,然后突然想起来,这个pushrouter的方法,那么应该是要new这个方法的啊,然后在router/index.js中看到实例化了router 然后export出来,在在main.jsimport 赋给了router变量,那么我在App.vue里,按照规范是应该在使用this.$router来调用的,这里是一个坑哦。

更复杂的尝试-多层嵌套路由

  • 首页
  • 人员管理
    新增人员
    人员列表
  • 文章管理
image.png image.png image.png image.png image.png image.png image.png

为了方便观看,我给二级内容加了红色的边框

image.png

可以看到,在对象中,加了一个children属性,在该属性中我们可以定义二级路由,我们现在来实现我们的人员管理的二级路由:

image.png image.png

简单的active样式

image.png image.png image.png

结束

var author = {
  name:'丁波',
  GitHub:'dingbo1028',
  University:'BNUZ'
}
上一篇 下一篇

猜你喜欢

热点阅读