例子:



点击tab1显示content1
点击tab2显示content2
问题:如果目前显示的是content2,页面刷新或者分享给别人,又回到默认的content1了
可以通过url来保存当前状态
方法一:通过hash里的锚点来保存



点击后url在变,但是把这个url分享出去还是没有什么用

1、设置hash location.hash=index
2、读取hash let index = location.hash ||'#0' //取的时候会有#号
3、分析hash index=index.substring(1) //不要#号,从1开始

既然可以用锚点,那么也可以换一种方式来进行,用a标签的href来记录,这个时候就可以不用监控li的点击事件,而是监控href的变更

那么上面2种有没有问题呢?有
如果html还有其他的a标签,被点击之后

锚点就会变了,

尤其是你的这个锚点不符合代码里写的路由规则
分享出去,页面会刷新显示到之前默认的


换href为路径,但是a标签,换路径会跳转
那么我们先阻止默认跳转
然后打印下




换一种方式
console.log(a.getAttribute('href'))


改了url,不跳转页面 ——利用history API无刷新的更改地址栏
点击其他a标签也不会有影响

问题:这种方式不能分享(链接给别人),是404的,因为服务器不知道
那么在服务器里识别下


另外一种,后台不管路径,不管前端请求什么,后端都返回index.html(最好不要这样)

什么是路由:
if path===xxx,那么就执行yyy()
else if path===xxx2,那么就执行yyy2()
给我一个路径,我就返回给你一个响应
前端做路由,就是前端路由
后端做路由,就是后端路由

前端的路由

后端的路由
用库vue router来进行路由
继续在vue_resume里进行

希望单独的页面来做登录,用路由来做

希望有个单独的页面来显示注册
进入vue-router

router-link:有特殊功能的a标签

http://jsbin.com/nicopicequ/edit?html,js,output

是一种hash,我们能不能换一种方式呢?用路径

history模式,就是路径了,

不能刷新

安装vue-router
npm install vue-router

如何引入组件呢?

方法一:用webpack

方法二:用命名空间






进入登录界面后,其没有父级了

app里只有一个div
那么登录之后的数据放哪里呢?
页面结构

如果这个数据是共有的,那么就把它放在root里
如果这个数据是自己单独的,那么就放在自己的data里
这个项目之前是单页面,现在是单页面+前端路由
a标签是后端路由
router-link是preventdefault的a标签→前端路由

之前后端管,#之后前端管
根据不同的路径展示不同的UI,就是router ,vue-router是其中之一

前端的发展路程
网友评论