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

发布时间 - 2026-01-11 00:08:37    点击率:

前言

最近练习Vue,看到官方文档中的嵌套路由,不做不知道,实在是太坑了,网上资料demo少之又少,然后自己就做了一个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_jb51.rar

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


# vue.js实现分页  # vue嵌套路由实现分页  # vue.js  # 分页  # Vue2 响应式系统之分支切换  # Vue2响应式系统介绍  # Vue2 响应式系统之异步队列  # vue2路由方式--嵌套路由实现方法分析  # Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)  # vue2.0使用v-for循环制作多级嵌套菜单栏  # 详解vue2.0 transition 多个元素嵌套使用过渡  # Vue2响应式系统之嵌套  # 写得  # 用了  # 不做  # 少之又少  # 跳转  # 看吧  # 就做  # 要使  # 大家多多  # 文档  # 网上  # pre  # newmovie  # hot  # ing  # js  # const  # class  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何快速搭建高效WAP手机网站?  MySQL查询结果复制到新表的方法(更新、插入)  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  非常酷的网站设计制作软件,酷培ai教育官方网站?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel怎么调用外部API_Laravel Http Client客户端使用  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何在万网开始建站?分步指南解析  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何在服务器上三步完成建站并提升流量?  详解vue.js组件化开发实践  利用JavaScript实现拖拽改变元素大小  想要更高端的建设网站,这些原则一定要坚持!  怎么用AI帮你为初创公司进行市场定位分析?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  C++时间戳转换成日期时间的步骤和示例代码  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何在Windows虚拟主机上快速搭建网站?  java中使用zxing批量生成二维码立牌  如何用狗爹虚拟主机快速搭建网站?  zabbix利用python脚本发送报警邮件的方法  Laravel如何创建自定义中间件?(Middleware代码示例)  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  网站优化排名时,需要考虑哪些问题呢?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Bootstrap整体框架之CSS12栅格系统  如何安全更换建站之星模板并保留数据?  如何在阿里云完成域名注册与建站?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Bootstrap CSS布局之列表  JavaScript模板引擎Template.js使用详解  JS中对数组元素进行增删改移的方法总结  如何在七牛云存储上搭建网站并设置自定义域名?  JavaScript如何实现音频处理_Web Audio API如何工作?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Linux系统运维自动化项目教程_Ansible批量管理实战  JS碰撞运动实现方法详解  Laravel如何使用查询构建器?(Query Builder高级用法)  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在IIS中新建站点并配置端口与IP地址?  Python正则表达式进阶教程_复杂匹配与分组替换解析  JS实现鼠标移上去显示图片或微信二维码  jQuery validate插件功能与用法详解