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

网站搭建介绍网站建设的原因

网站搭建介绍,网站建设的原因,创新设计,网站开发js路径1. 配置组件名称 确保列表页组件设置了name选项&#xff0c;&#xff08;组合式API额外配置&#xff09;&#xff1a; <!-- vue2写法 --> export default {name: UserList // 必须与 <keep-alive> 的 include 匹配 }<!-- vue3写法 --> defineOptions({na…

1. 配置组件名称

确保列表页组件设置了name选项,(组合式API额外配置):

<!-- vue2写法 --> 
export default {name: 'UserList' // 必须与 <keep-alive> 的 include 匹配
}<!-- vue3写法 --> 
defineOptions({name: "UserList"
});

2. 路由配置

在路由配置中添加 meta 标识是否需要缓存:

{path: "/userList",name: "UserList",component: () => import("@/views/user/list.vue"),meta: {title: "用户列表",keepAlive: true // 自定义缓存标识}},

3. 动态缓存控制

在 App.vue 中使用 <keep-alive> 包裹路由视图,并动态判断缓存:

<!-- App.vue -->
<template><router-view v-slot="{ Component, route }"><keep-alive :include="cachedViews"><component:is="Component":key="route.fullPath"v-if="route.meta.keepAlive"/></keep-alive><component:is="Component":key="route.fullPath"v-if="!route.meta.keepAlive"/></router-view>
</template><script setup lang="ts">
import { ref, watch } from "vue";
import { useRoute } from "vue-router";const cachedViews = ref([]);
const route = useRoute();watch(() => route.meta.keepAlive,newVal => {if (newVal && !cachedViews.value.includes(route.name)) {cachedViews.value.push(route.name);}}
);
</script>

4. 生命周期钩子

在列表页组件中使用 activated 钩子(vue3 使用 onActivated )  处理返回时的逻辑:

<div class="list_box" @scroll="handleScroll" ref="listRef"> <van-listv-model:loading="loading":finished="finished"finished-text="没有更多了"@load="getList">.......</van-list>
</div>const listRef = ref(null);
// 缓存分页和滚动位置
const cachedState = ref({page: 1,scrollTop: 0
});// 滚动事件处理
const handleScroll = e => {// 实时保存滚动位置cachedState.value.scrollTop = e.target.scrollTop;// console.log("cachedState.value.scrollTop", cachedState.value.scrollTop);
};onActivated(async () => {console.log("组件激活,执行激活时的操作", cachedState.value.page);if (cachedState.value.page > 1) {searchQuery.page = cachedState.value.page;}await nextTick();// 恢复滚动位置if (listRef.value) {listRef.value.scrollTop = cachedState.value.scrollTop;}
});onDeactivated(() => {// 保存当前状态cachedState.value.page = searchQuery.page;console.log("组件停用", cachedState.value.page);
});

6. 高级场景:条件缓存

// 在全局前置守卫中
router.beforeEach((to, from) => {if (from.name?.toString().includes('Detail') && to.name === 'UserList') {to.meta.keepAlive = true // 从详情页返回时缓存} else if (to.name === 'ListPage') {to.meta.keepAlive = false // 从其他页面进入时不缓存}
})

http://www.dtcms.com/a/449130.html

相关文章:

  • 怎么建免费网站建设公司网站新闻宣传管理制度
  • Deep Code Research:当 Deep Research 遇上 ABCoder
  • JavaEE初阶——中秋特辑:网络编程送祝福从 Socket 基础到 TCP/UDP 实战
  • 多模卫星导航定位与应用-原理与实践(RTKLib)3
  • 数字婵娟:一部关于中秋节的计算主义宣言
  • ED2K技术
  • 【数据结构】顺序表0基础知识讲解 + 实战演练
  • GPU即服务:Linux与云原生如何联手开启AI算力“自来水“时代
  • 【数据结构】算法复杂度
  • 校园网门户网站建设招聘网站如何做
  • 深度学习(十六):数据归一化处理
  • 力扣70.爬楼梯
  • 【深度学习计算机视觉】10:转置卷积
  • 电子商务网站策划素材网站 模板
  • Coze源码分析-资源库-编辑知识库-后端源码-安全/错误处理机制
  • 【无标题】标签单击事件
  • GAMES101:现代计算机图形学入门(Chapter5 光栅化1(三角形遍历))迅猛式学习笔记(附Homework 0)
  • 【Linux操作系统】进程概念
  • 【Linux】Linux进程信号(上)
  • 海思SS528/22AP30开发笔记之环境搭建和SDK编译
  • 算法二分法详解
  • 信号 | 基本描述 / 分类 / 运算
  • 【环境配置 升级gcc】RK3588 Ubuntu20.04 gcc9升级为gcc10
  • 资产信息收集与指纹识别:HTTPX联动工具实战指南
  • 鼠标消息超时处理——实现图形界面自动操作,避免鼠标消息阻塞
  • 用AI帮忙,开发刷题小程序:微信小程序在线答题系统架构解析
  • 用AI帮忙,开发刷题小程序:从零开始,构建微信小程序答题系统
  • 简单一点的网站建设个人网页设计页眉
  • 生成式人工智能赋能高中物理教学:范式转型、实践路径与效果评估
  • ✅XXL-JOB的基本使用