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

网站页面相关产品链接怎么做关键时刻

网站页面相关产品链接怎么做,关键时刻,电商公司简介模板,网站开发和移动开发文章目录 Vue 动态组件 keep-alive知识点讲解业务场景实例代码实现keep-alive Vue 动态组件 keep-alive 知识点讲解 通过 Vue 的 <component> 组件和特殊的 is 属性实现的。 <!-- curentComponent 改变时组件也改变 --> <component :is"componentMap[…

文章目录

  • Vue 动态组件 + keep-alive
    • 知识点讲解
    • 业务场景实例
    • 代码实现
    • keep-alive

Vue 动态组件 + keep-alive

知识点讲解

通过 Vue 的 <component> 组件和特殊的 is 属性实现的。

<!-- curentComponent 改变时组件也改变 -->
<component :is="componentMap[curentComponent]""></component>

被传给 :is 的值可以是以下几种:

  • 被注册的组件名
  • 导入的组件对象

除了以上两种,也可以使用 is 属性创建一般的 HTML 元素,只要将 is 属性的值设置为任意 HTML 元素标签名,比如 ‘div’、‘span’、‘a’ 等,Vue 将会根据这个值创建相应的元素。

业务场景实例

访问某系统,跳转系统登录页,左侧展示图片和公司宣传语,右侧展示登录相关信息。左侧内容固定不变,针对不同情况右侧展示的登录信息不同,这种情况右侧区域可以采用动态组件实现不同内容的切换。
业务逻辑流转如下:

  1. 访问系统,展示【登陆账户】,输入手机号,点击登录/注册按钮。
  2. 后端验证该手机号是否注册,如果暂未注册,展示【输入验证码】。
  3. 验证码校验通过,展示【请设置密码】。
  4. 密码确认之后,展示【登录账户】。
  5. 点击重置密码,展示【设置新密码】。

当然除此场景以外,tab 的切换场景也非常常见。

在这里插入图片描述

代码实现

代码涉及知识点 Typescript 工具类型 Record<Keys, Type>

import Login from './components/Login.vue'
import Code from './components/VerifyCode.vue'
import SetPassword from './components/SetPassword.vue'
import Password from './components/Password.vue'
import SetNewPassword from './components/SetNewPassword.vue'const curentComponent = ref<string>('Login')const componentMap = shallowRef<Record<string, Component>>({Login,Password,Code,SetPassword,SetNewPassword
})// 不同的时机修改 curentComponent.value 

❗❗❗ 注意点
Vue2 是通过组件名称切换的,Vue3 是通过组件实例切换的。
如果直接把组件实例放到 reactive 中代理,Vue 会发出警告。告知我们可以通过 shallowRef 或者 markRaw 跳过 proxy 代理。因为组件实例进行响应式代理毫无意义,且浪费性能。

在这里插入图片描述

keep-alive

本节内容涉及 Vue Devtools 插件下载、安装和应用
当使用 <component :is=“…”> 在多个组件间作切换时,被切换掉的组件会被卸载。我们可以通过 <keep-alive> 组件强制被切换掉的组件仍然保持“存活”的状态。

当使用 <keep-alive> 缓存了组件而不是频繁创建和销毁(开销大)。

有三个属性:

  • include 组件名只要匹配添加的名称表示会被缓存。

  • exclude 组件名匹配添加的名称表示不会被缓存。

  • max 设置最多缓存实例数。一般用于页面级别缓存。

    <!-- include/exclude 支持以下格式设置 -->
    <!-- 以英文逗号分隔的字符串 -->
    <KeepAlive include="a,b"><component :is="view" />
    </KeepAlive><!-- 正则表达式 (需使用 `v-bind`) -->
    <KeepAlive :include="/a|b/"><component :is="view" />
    </KeepAlive><!-- 数组 (需使用 `v-bind`) -->
    <KeepAlive :include="['a', 'b']"><component :is="view" />
    </KeepAlive><!-- 设置最大缓存实例数 -->
    <KeepAlive :max="10"><component :is="activeComponent" />
    </KeepAlive>
    

涉及两个生命周期:

  • deactived:组件失效时触发。一般用于做一些未存储数据的提示。
  • actived:当组件被激活时。一般用于做一些页面初始化的数据查询。

除了配合 <component :is=“…”> 使组件保持存活状态,还可以配合路由 <router-view> 使用可以使页面保留状态,避免重复渲染。

通过 Vue devtools 比较使用 <keep-alive> 缓存和不使用 <keep-alive> 缓存时组件的两种存在状态。

未缓存组件
在这里插入图片描述
缓存组件

访问过的三个组件都会存在,只是分为激活状态和失活状态,当重新访问组件进入激活状态时触发 actived 钩子函数,失活的触发 deactived 钩子函数。在这里插入图片描述

http://www.mmbaike.com/news/93334.html

相关文章:

  • 网站规划与建设 ppt抖来查关键词搜索排名
  • 做京东网站需要哪些手续费企业网站建设方案策划
  • java 网站制作电脑培训网上课程
  • vs2010网站设计用整张图片做背景搜索引擎优化的英文
  • 专业做公司logo的网站抖音矩阵排名软件seo
  • 自己做网站的网址广东seo网站推广代运营
  • 爱奇艺做视频网站的百度网盘网页版登录入口
  • 做网站在哪安徽网站seo
  • 广州黄埔做网站的公司哪家好百度登录注册
  • 免费一级a做爰网站iis7站长工具
  • 免费主题软件app济南网站万词优化
  • 网站建设报价 东莞郑州网站顾问热狗网
  • 如何给网站做外链什么是搜索引擎竞价推广
  • 北京注销网站备案重庆seo网络推广优化
  • 建网站多少钱一个平台seo排名优化工具
  • 想更新公司网站怎么做百度官方网站登录
  • 济南营销型网站公司个人如何做seo推广
  • 网站建设项目的费用做什么科目seo网站优化推广
  • 上海模板建站公司广州软件系统开发seo推广
  • 网站建设好做吗公众号推广方案
  • 学建设网站及功能网络开发
  • 宝马的高端品牌叫什么seo分析
  • 滨湖区知名做网站价格网站ip查询
  • a站全称重庆百度关键词优化软件
  • 用html5做课程教学网站网页模板免费下载
  • 什么网站可以免费做视频软件自己如何开网站
  • 南宁网站推广google推广技巧
  • 做购物网站多少钱 知乎六安seo
  • 网站建设人才有哪些个人如何加入百度推广
  • 城乡建设门户网站比较好的网站建设网站