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

东莞齐诺做网站电子商务网站总体规划的内容

东莞齐诺做网站,电子商务网站总体规划的内容,青岛即墨网站开发,产品经理做网站文章目录 一、简介基本用法生命周期钩子 二、定义是否缓存组件三、缓存组件1. 通过 :include 属性实现vue2.x中vue3.x中 2. 通过 v-slot 功能实现3. 通过 v-if 来实现 四、注意事项 一、简介 Vue Router 允许你缓存路由组件#xff0c;这样在用户导航回之前的页面时#xff… 文章目录 一、简介基本用法生命周期钩子 二、定义是否缓存组件三、缓存组件1. 通过 :include 属性实现vue2.x中vue3.x中 2. 通过 v-slot 功能实现3. 通过 v-if 来实现 四、注意事项 一、简介 Vue Router 允许你缓存路由组件这样在用户导航回之前的页面时组件的状态会被保留而不是重新渲染。这可以通过使用 keep-alive 组件来实现。 keep-alive 是一个内置抽象组件它自身不会渲染一个 DOM 元素也不会出现在父组件链中。 它的主要作用是缓存不活动的组件实例而不是销毁它们。 当组件在 keep-alive 包裹下被切换时它的状态包括数据、DOM 结构等都会被保留以便在下次重新显示时能够恢复之前的状态而不是重新创建组件实例。 基本用法 keep-alive component :iscurrentTabComponent/component /keep-alive在上面的例子中currentTabComponent 是一个动态组件它的值会根据当前选中的标签页而变化。 使用 keep-alive 后当切换标签页时之前的组件实例会被缓存起来而不是被销毁。 生命周期钩子 被 keep-alive 包裹的组件拥有两个特有的生命周期钩子activated 和 deactivated。 activated当组件被激活时调用即在 keep-alive 缓存中组件再次可见时被调用。 deactivated当组件被停用时调用即在 keep-alive 缓存中组件不可见时被调用。 这两个钩子可以帮助你更好地管理组件的状态比如当组件重新被激活时你可能需要重新获取数据或者更新视图。 二、定义是否缓存组件 根据路由的 meta 字段中的 keepAlive 属性来决定是否缓存组件。 如果 keepAlive 为 true则组件会被缓存否则它会被缓存。 const routes [{path: /foo,component: Foo,meta: { keepAlive: true } // 这个组件会被缓存},{path: /bar,component: Bar,meta: { keepAlive: false } // 没有设置 meta.keepAlive 或其值为 false则组件不会被缓存}// ... 其他路由配置 ]; 三、缓存组件 1. 通过 :include 属性实现 可利用keep-alive的 include 或 exclude 属性include 和 exclude 包含的name 是组件的name不是router name来设置缓存 include 值为字符串或者正则表达式匹配的组件name会被缓存。exclude 值为字符串或正则表达式匹配的组件name不会被缓存。 vue2.x中 通过 keep-alive 的 :include 属性来实现动态缓存组件 templatediv idappkeep-alive :includecachedViewsrouter-view/router-view/keep-alive/div /templatescriptexport default {name: App,data() {return {cachedViews: [] // 存储需要缓存的组件名};},watch: {$route(to, from) {// 过滤出需要缓存的组件即 meta.keepAlive true 的组件const keepAliveComponent to.matched.filter(record {return record.meta record.meta.keepAlive;});if (keepAliveComponent.length) {// 把需要缓存的组件的name放到cachedViews集合里this.cachedViews this.cachedViews.concat(keepAliveComponent.map(record record.name));} else {const index this.cachedViews.indexOf(to.name);if (index -1) {this.cachedViews.splice(index, 1);}}}}}; /script. vue3.x中 在 Vue 3 中同样可以使用 keep-alive 的 :include 属性来实现动态缓存组件: templatediv idappkeep-alive :includecachedViewsrouter-view/router-view/keep-alive/div /templatescriptimport { ref, onMounted, watch, onUnmounted } from vue;import { useRoute } from vue-router;export default {name: App,setup() {const cachedViews ref([]);const route useRoute();const updateCachedViews () {const keepAliveComponent route.matched.filter(record {return record.meta record.meta.keepAlive;});cachedViews.value keepAliveComponent.map(record record.name);};onMounted(() {updateCachedViews();});watch(route,() {updateCachedViews();},{ immediate: false });onUnmounted(() {// 清理操作如果需要的话});return {cachedViews};}}; /script2. 通过 v-slot 功能实现 由于Vue 3 由于引入了组合式 API 和 v-slot 功能有更简洁的方式来实现动态缓存 templatediv idapprouter-view v-slot{ Component }keep-alive v-ifComponent.meta Component.meta.keepAlivecomponent :isComponent //keep-alivecomponent v-else :isComponent //router-view/div /templatescriptimport { defineComponent } from vue;export default defineComponent({name: App}); /script使用router-view 的 v-slot 功能来访问当前路由组件的实例。 然后我们检查这个组件的 meta.keepAlive 属性来决定是否将其包裹在 keep-alive 中。 3. 通过 v-if 来实现 在Vue2和Vue3中都可以使用 v-if$route.meta.keepAlive 来判断哪些组件需要缓存简单粗暴 templatediv idappkeep-alive v-if$route.meta.keepAliverouter-view/router-view/keep-aliverouter-view v-if!$route.meta.keepAlive/router-view/div /templatescriptimport { defineComponent } from vue;export default defineComponent({name: App}); /script四、注意事项 虽然 keep-alive 可以提高性能但也要避免过度使用因为缓存的组件实例会占用内存。 当组件被 keep-alive 包裹时它的 created 和 mounted 钩子只会在第一次渲染时调用之后的切换不会再次触发这两个钩子。 如果需要强制刷新缓存的组件可以通过改变 key 属性或者使用 ·include/exclude· 属性来动态控制哪些组件需要被缓存。
http://www.hkea.cn/news/14332230/

相关文章:

  • 冠县哪做网站seo优化排名教程
  • 房地产网站做百度推广网站开发价格报表模板
  • 做一家视频网站深汕特别合作区面积
  • c2c网站程序多少钱网页个人简历模板
  • 北京官方网站建设昆明网站排名优化公司
  • 微信平台网站开发浙江建设技术职业学院网站
  • 沈阳网站制作公司培训网站大数据分析
  • 网站建设应用技术三屏合一网站开发
  • 网站建设公司浩森宇特个人备案经营网站备案
  • 重庆中国建设银行招聘信息网站胃肠科医院网站建设
  • 平顶山哪里做网站驻马店住房和城乡建设厅网站
  • 深圳 网站 设计厦门网站建设 金猪
  • asp网站qq登录怎么建设一个淘宝客网站谁知道
  • 装修网站设计图推荐长春电商网站建设价格
  • 网站备案被退回网站风格主要包括哪些
  • 做嗳啪啪 网站网站的分页做不好会影响主页
  • 如何识别一个网站是否做的好私人免费网站怎么下载
  • 做的的网站怎样上传食品包装设计ppt
  • 社交网站第一步怎么做网店运营公司
  • 宁波微信公众号开发公司新河seo怎么做整站排名
  • 商城网站建设功能点价格深圳网络推广代理
  • 产品设计优秀网站wordpress 修改配置文件
  • 外贸网站官网怎么做汕头市建设网站
  • 常见网站结构有哪些济宁住房与建设网站
  • 提供零基础网站建设教学公司建筑工人招工网
  • flash网站源码带后台eclipse开发安卓app
  • 图片滤镜网站开发购买了网站空间如何进入
  • 广 做网站蓝光电影下载网站建设和运维单位责任
  • 巴州住房和城乡建设局网站网站建设有什么看法
  • 如何使用qq空间做推广网站收录快的网站