vue2.0嵌套路由实现豆瓣电影分页功能(附demo)


Posted in Javascript onMarch 13, 2017

前言

最近练习Vue,看到官方文档中的嵌套路由,不做不知道,实在是太坑了,网上资料demo少之又少,然后自己就做了一个demo,用了vue2.0嵌套路由实现豆瓣电影分页功能,供大家学习学习,写得不好望见谅。

demo截图:

vue2.0嵌套路由实现豆瓣电影分页功能(附demo)

Demo简单介绍

主路由:Top250(charts),正在热映(hot),即将上映(ing),新片榜(newmovie)

const router = new VueRouter({
  routes: [
    {
     path: '/',  //设置默认路由为Top250
     component: charts
    },
    {
     path: '/charts', //Top250
     component: charts
    },
    {
     path: '/hot', 
     component: hot
    },
    {
     path: '/ing',
     component: ing
    },
    {
     path: '/newmovie',
     component: newmovie
    },
  ]
 }

在top250(charts)上添加了分页功能作为子路由,在配置上添加:

{
 path: '/charts/:id', //子路由
 component: charts,
 children: [
  {path: '1', component: moviecontent}, 
  {path: '2', component: moviecontent2},
  {path: '3', component: moviecontent3}
  ]
}

在charts组件上添加入口:

<router-link to="/charts/1">1</router-link>
<router-link to="/charts/2">2</router-link>
<router-link to="/charts/3">3</router-link>

在charts组件上添加出口:

<router-view></router-view>

子路由如何跳转同一组件时数据实现更新?

同样,在top250(charts)上添加了分页功能作为子路由,但指向同一组件:

{
 path: '/charts/:id', //子路由
 component: charts,
 children: [
  {path: '1', component: moviecontent2}, // 同一组件
  {path: '2', component: moviecontent2}, // 同一组件
  {path: '3', component: moviecontent2} // 同一组件
  ]
}

画重点:

因为路由切换同一组件时,实例已经在第一次进入路由时创建了,之后切换路由不会被创建了,所以只能调用一次created,因此要使用$route监听getData方法,当路由切换的时候,调用getData方法,重新获取数据。

created: function () {
    //第一次进入路由时数据的更新
    this.$http.jsonp()
},
watch: {
 '$route': 'getData' //切换路由,调用getData方法
},
methods: {
 getData: function () {
    //路由切换,重新请求数据
    this.$http.jsonp()
 }
}

数据来自豆瓣电影API。

代码写得好烂,凑合着看吧,反正子路由还是成功的啊!

本demo地址:doubandemo_3water.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 入门级学习笔记及源码
Jan 22 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
js获取会话框prompt的返回值的方法
Jan 10 Javascript
javascript中Number的方法小结
Nov 21 Javascript
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
Aug 16 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
js实现星星打分效果
Jul 05 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 #Javascript
深入理解Node.js中的进程管理
Mar 13 #Javascript
jQuery简易时光轴实现方法示例
Mar 13 #Javascript
JavaScript评论点赞功能的实现方法
Mar 13 #Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 #Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 #Javascript
JS实现直接运行html代码的方法
Mar 13 #Javascript
You might like
Codeigniter的一些优秀特性总结
2015/01/21 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
python计算日期之间的放假日期
2018/06/05 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
《纸船和风筝》教学反思
2014/02/15 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
文体活动总结
2015/02/04 职场文书
暂停营业通知
2015/04/25 职场文书
奖励申请报告范文
2015/05/15 职场文书
小学思品教学反思
2016/02/20 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL