vue3使用策略模式管理动态组件的扩展性
创始人
2024-11-14 18:34:25
0

这里写自定义目录标题

  • 背景
  • 目标
  • 步骤
    • 1. 创建组件策略
      • 1.1 定义按钮组件
      • 1.2 创建策略管理器
    • 2.创建策略上下文
    • 3.使用组件
  • 总结

背景

举例,假设在业务中有三种类型的组件button-default.vuebutton-primary.vuebutton-warning.vue 根据接口返回的类型type来控制展示。通常,我们会在代码中根据type条件判断,来控制组件的展示。但是,可预见的未来,业务类型会不断增长,每次扩展类型,都去组件使用位置去修改代码,不是很友好。所以,思考可以使用策略模式的方式来管理组件。

目标

要使用策略模式管理 button-default.vue、button-primary.vue 和 button-warning.vue 这三个组件,并且能够根据传入的 type 参数渲染对应的组件

步骤

1. 创建组件策略

首先,创建一个策略管理器,这个管理器将负责根据传入的 type 渲染正确的组件。

1.1 定义按钮组件

button-default.vue

        

button-primary.vue

      

button-warning.vue

       

1.2 创建策略管理器

创建一个工厂函数来管理不同类型的按钮组件。

import { defineComponent, Component } from 'vue'; import ButtonDefault from './button-default.vue'; import ButtonPrimary from './button-primary.vue'; import ButtonWarning from './button-warning.vue';  // 定义策略映射类型 type ButtonType = 'default' | 'primary' | 'warning';  const buttonComponents: Record = {   default: ButtonDefault,   primary: ButtonPrimary,   warning: ButtonWarning, };  // 获取按钮组件 export function getButtonComponent(type: ButtonType) {   return buttonComponents[type] || buttonComponents.default; }  

2.创建策略上下文

在 Vue 组件中使用策略管理器来动态选择并渲染按钮组件。

      

3.使用组件

在应用中,使用 DynamicButton 组件来渲染不同类型的按钮。

    

总结

这种方法有效提高了组件的灵活性和可维护性

相关内容

热门资讯

连日来!福建天天开心辅助网,h... 连日来!福建天天开心辅助网,hhpoker辅助(透视)其实是真的有辅助攻略(哔哩哔哩)福建天天开心辅...
出乎意料的是"微友辅... 出乎意料的是"微友辅助器免费版"其实是真的有辅助挂(哔哩哔哩)小薇(辅助器软件下载)致您一封信;亲爱...
近日!友间十三道有什么窍门,h... 近日!友间十三道有什么窍门,hhpoker这个软件靠谱吗(竟然是真的神器)-哔哩哔哩1、点击下载安装...
连日来!三哥玩私人局辅助器,w... 连日来!三哥玩私人局辅助器,wepoker辅助透视软件(透视)果然存在有辅助app(哔哩哔哩)1、很...
事发当天"上饶中至辅... 事发当天"上饶中至辅助插件透视"其实确实有辅助插件(哔哩哔哩)一、上饶中至辅助插件透视游戏安装教程牌...
有消息称!越乡游辅助工具,hh... 有消息称!越乡游辅助工具,hhpoker是真的吗(透视)果然是有辅助脚本(哔哩哔哩)1、让任何用户在...
为切实保障!潘潘讲故事有外g挂... 为切实保障!潘潘讲故事有外g挂吗,微玩体育辅助器(好像有挂插件)-哔哩哔哩1、这是跨平台的潘潘讲故事...
受玩家影响"皮皮跑胡... 受玩家影响"皮皮跑胡子修改器"一贯是真的有辅助方法(哔哩哔哩)1、完成皮皮跑胡子修改器辅助器v3.3...
随着!欢乐对决手游辅助,wpk... 随着!欢乐对决手游辅助,wpk有那种辅助吗(透视)真是有辅助技巧(哔哩哔哩)1、欢乐对决手游辅助辅助...
昨日!逗娱碰胡开挂,兴动海满辅... 昨日!逗娱碰胡开挂,兴动海满辅助(真是真的有插件)-哔哩哔哩1、很好的工具软件,可以解锁游戏的兴动海...