当前位置: 首页 > news >正文

做分类信息网站html5手机网站开发实例

做分类信息网站,html5手机网站开发实例,彩虹云商城,整形网站源码一、需求 产品要求#xff1a;Vue移动端项目进入列表页#xff0c;列表页需要刷新#xff0c;而从详情页返回列表页#xff0c;列表页则需要缓存并且还原页面滚动条位置 二、实现思路 1、使用Vue中的keep-alive组件#xff0c;keep-alive提供了路由缓存功能 2、因为我项…一、需求 产品要求Vue移动端项目进入列表页列表页需要刷新而从详情页返回列表页列表页则需要缓存并且还原页面滚动条位置 二、实现思路 1、使用Vue中的keep-alive组件keep-alive提供了路由缓存功能 2、因为我项目只是针对某几个列表页面做缓存我就直接把指定的几个页面单独的做处理即把需要做缓存的页面路由的meta新增了keepAlive属性当keepAlive为true时缓存为false则不缓存从而实现进入列表页列表页需要刷新而从详情页返回列表页列表页则需要保持页面缓存 建议使用keep-alive 的 includes属性来做缓存页面 三、最终效果 四、具体实现 1、app.vue文件修改 templatediv idappkeep-aliverouter-view classRouter v-if$route.meta.keepAlive/router-view/keep-aliverouter-view classRouter v-if!$route.meta.keepAlive/router-view/div /template2、在动态路由生成后初始化指定缓存页面路由设置meta中keepAlive属性为true 3、单个列表页面的缓存处理详情返回到列表滚动条的位置 beforeRouteLeave(to, from, next) {// console.log(777---, from)this.scroll document.querySelector(.endInfo).scrollTop// 离开页面时需要清除缓存为了下次进入后刷新页面from.meta.keepAlive falsenext()},activated() {// 注意endInfo类是列表box的顶级类用来计算滚动条的距离document.querySelector(.endInfo).scrollTop this.scrollconsole.log(缓存页面距离, this.scroll)},4、从详情页面返回到列表需要如下设置关键步骤 beforeRouteLeave(to, from, next) {console.log(支付单详情页, to)// 设置下一个路由的meta,让列表页面缓存,即不刷新即此详情页面返回到sell和customerMangement页面后此页面缓存if (to?.path?.includes(sell) || to?.name?.includes(customerMangement)) {to.meta.keepAlive true}next()},五、缺陷按此方法缓存页面会出现列表新增数据后进入详情在返回到列表时之前新增的数据没有即还是上一次的缓存列表数据 六、解决方法在离开列表页面就手动清除keep-alive缓存 1、在app.vue页面加上clearKeepAlive方法并使用EventBus全局监听 解释this.$bus就是在main.js 加上Vue.prototype.$bus new Vue() templatediv idappkeep-aliverouter-view classRouter v-if$route.meta.keepAlive :keyfullPath/router-view/keep-aliverouter-view classRouter v-if!$route.meta.keepAlive/router-view/div /templatescript export default {name: app,computed: {fullPath() {// console.log(this.$route.fullPath);return this.$route.fullPath;},},mounted() {console.log(app---mounted)// 注册监听全局的clearKeepAlive方法,可在其他组件中触发此方法this.$bus.$on(clearKeepAlive, this.clearKeepAlive);},methods: {// 根据fullUrl清除keepAliveclearKeepAlive(fullUrl) {// console.log(bus触发要清除的keepAlive, fullUrl);this.$children.forEach((item) {if (item.$vnode.data.key fullUrl) {// console.log(destorykeepAlive, item.$vnode.data.key, fullUrl, item);this.destorykeepAlive(item);}});},// 封装清除某个组件的keepAlive状态,并销毁destorykeepAlive(keepAliveDom) {if (keepAliveDom?.$vnode?.data?.keepAlive) {if (keepAliveDom?.$vnode?.parent?.componentInstance?.cache) {if (keepAliveDom.$vnode.componentOptions) {var key keepAliveDom.$vnode.key null? keepAliveDom.$vnode.componentOptions.Ctor.cid (keepAliveDom.$vnode.componentOptions.tag? ::${keepAliveDom.$vnode.componentOptions.tag}: ): keepAliveDom.$vnode.key;var cache keepAliveDom.$vnode.parent.componentInstance.cache;var keys keepAliveDom.$vnode.parent.componentInstance.keys;if (cache[key]) {if (keys.length) {var index keys.indexOf(key);if (index -1) {keys.splice(index, 1);}}delete cache[key];}}}}keepAliveDom.$destroy();} } /script2、单个列表页面使用 beforeRouteLeave(to, from, next) {if (to.name ! 列表进入的详情页面name) {// 离开列表页面的时候当不是进入列表详情页面时清除列表页面的缓存this.$bus.$emit(clearKeepAlive, from.path)}next()},相关文章 基于ElementUi再次封装基础组件文档 基于ant-design-vue再次封装基础组件文档 vue3ts基于Element-plus再次封装基础组件文档
http://www.hkea.cn/news/14373045/

相关文章:

  • 响应式网站是怎么做的淄博网站推广价格
  • 麓谷网站建设企业网站未来发展趋势
  • 建设银行官网站查询课件模板
  • 网站建站开发平台设计方案
  • 网站建设包含以下哪些建设阶段大连投诉网站
  • 手机网站底部漂浮代码电子商务网站建设首要问题是
  • 原则网站设计版式建筑安全员c证查询官网
  • 英文网站建设 淮安wordpress 后台登陆美化
  • 沈阳网站推广公司排名公司部门结构图
  • 网站建设经验与团队网页设计与网站建设完全实用手册
  • 资源网站快速优化排名wordpress 主页面错乱
  • 用织梦做的学校网站云南建站推广
  • 网页翻译俄文西安网站seo外包
  • 商城类网站能做响应式设计吗民宿网站建设方案
  • 寺院的网站怎么做物流企业网站建设与管理规划书
  • 东莞网站制作实力乐云seowordpress 5图片相对路径
  • 为了 门户网站建设没有营业执照 怎么做网站
  • 做网站需要了解什么wordpress 换模板
  • 电子邮箱怎么注册seo专员是干什么的
  • 设计数码产品宣传网站php怎么连接wordpress
  • 我现在有域名怎么做网站视频类网站建设的成果
  • 服装商城网站源码谁会在掏宝网上做网站
  • 网站建设找宙斯站长工具asp网站怎么运行
  • 网站建设开发方式包括哪些方面wordpress新建页面无法选择模板
  • 不要网站域名东莞网站定制开发
  • 一级a做爰片免费视频网站做网站的总是有活动怎么回事
  • 市级档案网站建设情况分析爱有声小说网站捡个校花做老婆
  • 佛山规划建设局网站潍坊专业输送带产品介绍
  • 蒙古文网站建设wordpress 无法找到该页
  • 做信誉认证对网站有什么好处app项目开发教程