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

深圳罗湖企业网站优化代运营公司排行榜

深圳罗湖企业网站优化,代运营公司排行榜,黄金网站软件app视频,wordpress+培训模板keep-alive缓存文章列表案例完整代码(Vue3) 环境准备目录结构完整代码main.jsApp.vueArticleList.vueArticleDetail.vuerouter.js vue2 版本 环境准备 创建一个项目 vue create 项目名也可以用 vite npm create vitelatest 项目名 --template vue安装…

keep-alive缓存文章列表案例完整代码(Vue3)

  • 环境准备
  • 目录结构
  • 完整代码
    • main.js
    • App.vue
    • ArticleList.vue
    • ArticleDetail.vue
    • router.js
  • vue2 版本

环境准备

创建一个项目

vue create 项目名

也可以用 vite

npm create vite@latest 项目名 --template vue

安装 vue router

npm install vue-router@4

目录结构

在这里插入图片描述

完整代码

main.js

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";createApp(App).use(router).mount("#app");

App.vue

这里和vue2一样也有两种写法,可以看 keep-alive缓存文章列表案例完整代码(Vue2)
这边就用第二种。

<template><RouterView v-slot="{ Component }"><KeepAlive><component :is="Component" v-if="route.meta.keepAlive" /></KeepAlive><component :is="Component" v-if="!route.meta.keepAlive" /></RouterView>
</template>
<script setup>
import { useRoute } from "vue-router";
const route = useRoute();
</script>

ArticleList.vue

<script setup>
import {onMounted,onActivated,onDeactivated,ref,nextTick,onUnmounted,
} from "vue";const articles = ref([]);
const scrollTop = ref(0);function fakeFetch() {return Array.from({ length: 100 }, (_, i) => ({id: i + 1,title: "文章标题 " + (i + 1),}));
}function handleScroll() {scrollTop.value = window.scrollY || document.documentElement.scrollTop;// console.log("滚动位置:", scrollTop.value);
}onMounted(() => {// console.log("mounted:" + scrollTop.value);articles.value = fakeFetch();window.addEventListener("scroll", handleScroll);
});//onUnmounted(() => {
//  console.log("unmounted"); // 有就说明没缓存成功
//});onActivated(() => {nextTick(() => {// console.log("activated:", scrollTop.value);window.scrollTo(0, scrollTop.value);});window.addEventListener("scroll", handleScroll);
});onDeactivated(() => {// console.log("deactivated:", scrollTop.value);window.removeEventListener("scroll", handleScroll);
});
</script><template><div><div v-for="item in articles" :key="item.id" class="item"><router-link :to="{ name: 'ArticleDetail', query: { id: item.id } }">{{ item.title }}</router-link></div></div>
</template><style>
.item {padding: 16px;border-bottom: 1px solid #eee;
}
</style>

ArticleDetail.vue

<script setup>
import { onMounted } from "vue";
import { useRoute } from "vue-router";// 获取路由信息
const route = useRoute();onMounted(() => {// 模拟请求内容// console.log("详情页 mounted,ID:", route.query.id);
});
</script><template><div><h2>文章详情 {{ route.query.id }}</h2><p>内容详情...</p><router-link to="/list">返回列表</router-link></div>
</template>

router.js

import { createRouter, createWebHistory } from "vue-router";
import ArticleList from "@/components/ArticleList.vue";
import ArticleDetail from "@/components/ArticleDetail.vue";const routes = [{path: "/list",name: "ArticleList",component: ArticleList,meta: { keepAlive: true },},{path: "/detail",name: "ArticleDetail",component: ArticleDetail,meta: { keepAlive: false },},
];const router = createRouter({history: createWebHistory(),routes,
});export default router;

vue2 版本

keep-alive缓存文章列表案例完整代码(Vue2)

http://www.dtcms.com/wzjs/393843.html

相关文章:

  • 做响应式网站的常用尺寸500个游戏推广群
  • wordpress里再建一个网站学生个人网页制作教程
  • 网站建设培训公司搜索推广出价多少合适
  • 网站图片上传不了是什么原因新冠不易感染三种人
  • 用户体验设计的重要性成都seo技术
  • 自己做签名网站今天国内最新消息
  • 有了网站开发app是不是更容易流程优化的七个步骤
  • 商家自己做的商品信息查询网站网络营销课程作业
  • 网站建设 调研报告网站关键词怎么添加
  • 营销型网站建设大概多少钱百度搜索一下就知道
  • 国内做卷学习网站汕头seo按天付费
  • 建设一个电影网站需要多少钱游戏推广文案
  • mac os 做网站合肥网站推广公司
  • 个人做网站需要什么资料免费网站服务器
  • 普通银行卡可以做国外网站购物信用卡使用吗seo研究中心倒闭
  • 淘宝联盟链接的网站怎么做的厦门seo排名优化
  • 网络公司怎么做网站百度账号怎么注册
  • 荆州网站建设价格深圳信息公司做关键词
  • 网站建设与维护选择题长沙关键词自然排名
  • er图关于网站建设新闻发布的网站
  • 做视频课程网站郑州seo公司排名
  • 宁德市城乡建设局网站登封seo公司
  • 苹果手机免费做ppt模板下载网站有哪些比较有名的个人网站
  • 做视频网站 视频放在哪里百度免费资源网站
  • 标准营销型网站定做价格免费b站在线观看人数在哪里找到
  • 济南网站建设需要多少钱百度排行榜风云榜小说
  • 用阿里云搭建WordPress深圳推广优化公司
  • 家乡网站建设策划书日本比分预测
  • 深圳市外贸网站东莞seo建站优化工具
  • 网站建设与管理ppt课件百度云盘如何优化seo