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 相关文章推荐
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
Mar 08 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
node.js中的require使用详解
Dec 15 Javascript
Bootstrap Chart组件使用教程
Apr 28 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
ES6所改良的javascript“缺陷”问题
Aug 23 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
react的滑动图片验证码组件的示例代码
Feb 27 Javascript
npm qs模块使用详解
Feb 07 Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 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
php相当简单的分页类
2008/10/02 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
jQuery 表格工具集
2010/04/25 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
浅析python标准库中的glob
2020/03/13 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
应届毕业生简历自我评价
2014/01/31 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
企业文化宣传标语
2014/06/09 职场文书
MYSQL 运算符总结
2021/11/11 MySQL