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在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
JS高级笔记
Jul 13 Javascript
jquery如何判断某元素是否具备指定的样式
Nov 05 Javascript
JavaScript中的类(Class)详细介绍
Dec 30 Javascript
AngularJS过滤器详解及示例代码
Aug 16 Javascript
不间断循环滚动效果的实例代码(必看篇)
Oct 08 Javascript
vue.js指令v-model使用方法
Mar 20 Javascript
ES6 javascript中Class类继承用法实例详解
Oct 30 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
微信小程序停止其他视频播放当前视频的实例代码
Dec 25 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 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下保存远程图片到本地的办法
2010/08/08 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
Php图像处理类代码分享
2012/01/19 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
重新认识php array_merge函数
2014/08/31 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
javascript 自动转到命名锚记
2009/01/10 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python中元类用法实例
2014/10/10 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python Pillow图像处理方法汇总
2019/10/16 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
销售冠军获奖感言
2014/02/03 职场文书
七年级历史教学反思
2014/02/05 职场文书
眼镜促销方案
2014/03/15 职场文书
白血病募捐倡议书
2014/05/14 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
升职自荐信怎么写
2015/03/05 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server
基于Python实现将列表数据生成折线图
2022/03/23 Python