主頁 > 企業開發 > 面向物件開發DialogComponent組件

面向物件開發DialogComponent組件

2023-03-09 08:02:51 企業開發

??Hi~ 大家好,我是小鑫同學,一位長期從事前端開發的編程愛好者,我將使用更為實用的案例輸出更多的編程知識,同時我信奉分享是成長的唯一捷徑,在這里也希望我的每一篇文章都能成為你技術落地的參考~

??技術&代碼分享

  • 我在 IT200 總結技術學習;
  • 我在 1024Code 在線撰寫代碼;
  • 我在 掘金 分享技術文章;
  • 我在 Github 參與開源學習;

??推薦幾個好用的工具

  • var-conv 適用于VSCode IDE的代碼變數名稱快速轉換工具
  • generator-vite-plugin 快速生成Vite插件模板專案
  • generator-babel-plugin 快速生成Babel插件模板專案

進入正題

在各種場景的開發中Dialog組件的出現頻率都是非常高的,Dialog組件作為一個容器組件受容器內業務代碼復雜度的影響,代碼行數、變數及函式的定義可能會很多,這樣的組件就一定要考慮封裝使用,以保證主流程代碼的簡潔,下面一起來看一下如何利用面向物件的思想來封裝它吧~

技術選型

Vuejs3.x + Typescript + <script setup> 是目前撰寫SFC組件的推薦方式,相比直接使用setup函式編碼體驗會更好,AntdV組件庫的使用頻率相比ElementUI要高,推薦新專案直接選用AntdV,完整代碼可以在1024Code直接Fork或匯出到本地,

代碼分析

下面的代碼來自AntdV組件庫Model組件的示例,Model需要一個visible屬性來控制是否顯示和隱藏,由buttonclick事件來觸發修改visible屬性顯示,并且可以通過ok事件的觸發來表示對Model內業務邏輯的認可,

從這個示例來看代碼當然是沒有拆分組件的必要的,當但代表主流程業務的button和由modal包裹的業務流程變得多起來的時候,script里面的代碼可讀性將大大降低,

<script setup lang="ts">
import { ref } from 'vue';

const visible = ref<boolean>(false);

const showModal = () => {
  visible.value = https://www.cnblogs.com/it200/archive/2023/03/08/true;
};

const handleOk = (e: MouseEvent) => {
  console.log(e);
  visible.value = false;
};
</script>