您的位置:首页 > 教育 > 锐评 > 上海建筑设计研究院有限公司招聘_单位做网站费用怎么记账_网站排名查询平台_网站建设需要多少钱?

上海建筑设计研究院有限公司招聘_单位做网站费用怎么记账_网站排名查询平台_网站建设需要多少钱?

2025/3/28 10:13:01 来源:https://blog.csdn.net/weixin_53541596/article/details/146406925  浏览:    关键词:上海建筑设计研究院有限公司招聘_单位做网站费用怎么记账_网站排名查询平台_网站建设需要多少钱?
上海建筑设计研究院有限公司招聘_单位做网站费用怎么记账_网站排名查询平台_网站建设需要多少钱?

以下是一个使用 Vue 3 和 Vue Router 实现动态添加和删除 cachedViews 数组的代码示例,该示例结合 keep-alive 组件来动态控制路由组件的缓存。

src/
├── App.vue
├── router/
│   └── index.js
├── views/
│   ├── Home.vue
│   ├── About.vue
│   └── Contact.vue
└── main.js
代码实现
router/index.js
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';
import Contact from '../views/Contact.vue';const routes = [{path: '/',name: 'Home',component: Home},{path: '/about',name: 'About',component: About},{path: '/contact',name: 'Contact',component: Contact}
];const router = createRouter({history: createWebHistory(),routes
});export default router;
views/Home.vue
<template><div><h1>Home Page</h1></div>
</template><script setup>
import { defineComponent } from 'vue';export default defineComponent({name: 'Home'
});
</script>

 views/Contact.vue

<template><div><h1>Contact Page</h1></div>
</template><script setup>
import { defineComponent } from 'vue';export default defineComponent({name: 'Contact'
});
</script>

App.vue 

<template><div id="app"><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link> |<router-link to="/contact">Contact</router-link><keep-alive :include="cachedViews"><router-view></router-view></keep-alive><div><h2>Cached Views</h2><ul><li v-for="view in cachedViews" :key="view">{{ view }}<button @click="removeCachedView(view)">Remove</button></li></ul></div></div>
</template><script setup>
import { ref, watch } from 'vue';
import { useRoute } from 'vue-router';const route = useRoute();
const cachedViews = ref([]);// 监听路由变化,动态添加缓存视图
watch(() => route.name,(newName) => {if (newName && !cachedViews.value.includes(newName)) {cachedViews.value.push(newName);}},{ immediate: true }
);// 删除缓存视图
const removeCachedView = (view) => {const index = cachedViews.value.indexOf(view);if (index !== -1) {cachedViews.value.splice(index, 1);}
};
</script>
main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';const app = createApp(App);
app.use(router);
app.mount('#app');
代码解释
  1. 路由配置:在 router/index.js 中定义了三个路由:HomeAbout 和 Contact
  2. 组件定义:在 views 目录下创建了对应的组件,并为每个组件设置了 name 属性。
  3. App.vue 组件
    • 使用 keep-alive 组件并通过 :include 绑定 cachedViews 数组,来控制哪些组件需要被缓存。
    • 使用 watch 监听路由变化,当路由切换时,如果新路由对应的组件名称不在 cachedViews 数组中,则将其添加进去。
    • 提供了一个列表展示当前缓存的组件名称,并为每个名称添加了一个删除按钮,点击按钮调用 removeCachedView 方法从 cachedViews 数组中移除对应的组件名称。

通过以上代码,你可以实现动态添加和删除需要缓存的路由组件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com