vue3封装公共方法

2025-03-26 0 25

Image

《vue3封装公共方法》

一、解决方案

在Vue3项目开发中,封装公共方法可以提高代码的复用性、可维护性和项目的扩展性。通过将一些常用的功能逻辑抽离出来封装成公共方法,不同组件就可以方便地调用这些方法,而无需重复编写相同的代码。我们可以通过创建一个单独的js文件来存放公共方法,或者利用Vue3的组合式API(Composition API)等方式来进行封装。

二、基于普通js文件封装

我们可以创建一个名为commonUtils.js的文件。例如,有一个格式化日期的公共方法。

javascript
// commonUtils.js
export function formatDate(date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
}
}
return fmt;
}

然后在组件中使用:

javascript

  <div>{{formattedDate}}</div>
</p>


import { ref, onMounted } from 'vue';
import { formatDate } from './commonUtils';

export default {
    setup() {
        const formattedDate = ref('');
        const now = new Date();
        onMounted(() => {
            formattedDate.value = formatDate(now, 'yyyy - MM - dd hh:mm:ss');
        });
        return {
            formattedDate
        };
    }
};


<p>

三、利用组合式API封装

(一)定义工具函数

javascript
// useUtils.js
import { ref } from 'vue';</p>

<p>export function useFormatDate() {
    const formatDate = (date, fmt) => {
        if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
        }
        let o = {
            'M+': date.getMonth() + 1,
            'd+': date.getDate(),
            'h+': date.getHours(),
            'm+': date.getMinutes(),
            's+': date.getSeconds()
        };
        for (let k in o) {
            if (new RegExp(<code>(${k})).test(fmt)) {
                let str = o[k] + '';
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
            }
        }
        return fmt;
    };

return {
    formatDate
};

}

(二)组件中使用

javascript

  <div>{{formattedDate}}</div>
</p>


import { ref, onMounted } from 'vue';
import { useFormatDate } from './useUtils';

export default {
    setup() {
        const { formatDate } = useFormatDate();
        const formattedDate = ref('');
        const now = new Date();
        onMounted(() => {
            formattedDate.value = formatDate(now, 'yyyy - MM - dd hh:mm:ss');
        });
        return {
            formattedDate
        };
    }
};


<p>

除了上述两种方式,在实际项目中还可以根据需求考虑使用Vuex来管理一些全局的状态和相关的方法,对于一些需要跨多个组件共享且较为复杂的方法和数据逻辑,Vuex会是一个不错的选择。但如果是简单的公共方法,前两种方式已经足够满足需求并且更加简洁高效。

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载