Vue3模塊化指的是,把HTML和邏輯代碼分離,對一個頁面有多個復雜的功能時,可以一個功能對應一個文件,提高可讀性,復用性,維護性,並且在遇到相同功能展示不同的UI時,可以直接集成某一個功能進行實現。
下面一個小案列:
實列:下面頁面實現了兩個功能,一個是數字加減,一個是數組添加和刪除

1.Home頁面
<template> <div class="home"> <br/> 數字:{{sum}} <button type="button" @click="add">加</button> <button type="button" @click="reduce">減</button> <p> 輸入追加的數字:<input type="" name="" id="" v-model="value" /><button type="button" @click="pushEvent">追加數組</button> <button type="button" @click="deleteEvent">刪除最后一項</button> </p> <div> <p v-for="(item,index) in arr" :key="index"> {{item}} </p> </div> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; // 抽離的邏輯代碼進行導出Home.ts文件內容 import {sum, add,parameter,reduce,pushEvent,deleteEvent} from '@/hook/Home.ts' import { toRefs } from 'vue'; export default defineComponent({ name: 'Home', components: { }, setup(){ return { add,reduce, pushEvent, deleteEvent, sum, ...toRefs(parameter) } } }); </script>
2.創建的src/hook/Home.ts(實現數據的邏輯代碼)
import { ref,reactive,toRefs } from 'vue'; // 1.數組循環 並且添加/刪除// arr 數據接口 定義arr常量數組內必須全部是數字 interface arr { arr:Array<number>, value:number } const parameter = reactive<arr>({ arr:[1,2,3,4], value:0 }); // 給數組末尾追加 function pushEvent(){ if(parameter.value>0){ // 只能添加大於0的數字 parameter.arr.push(parameter.value) } } // 刪除數組最后一個 function deleteEvent(){ parameter.arr.pop() } // ********************************************** // 2.數字加減 const sum = ref<number>(1) function add(){ sum.value +=1 } function reduce(){ sum.value -=1 } export { sum, add, reduce, deleteEvent, parameter, pushEvent }
我是馬丁的車夫,歡迎轉發收藏!