最近在项目中尝试了几个实用的JavaScript插件,发现能极大提升开发效率,分享四个高频使用的工具——分别用于农历转换、轮播图实现、剪切板操作和多语言适配。
一、农历插件:chinese-lunar-calendar
在项目中需要显示农历日期(比如生日提醒、传统节日)时,手动计算太麻烦。chinese-lunar-calendar插件足够轻量且数据准确,不用自己去维护农历对照表。
使用npm安装:
npm install chinese-lunar-calendar
基础用法:
import { solarToLunar } from 'chinese-lunar-calendar';
// 公历转农历
const lunarDate = solarToLunar(2025, 4, 20);
console.log(lunarDate);
// 输出:{ year: 乙巳, month: 三月, day: 廿三, isLeap: false }
- 通过
format
方法自定义输出格式(如”农历Y年M月D日”) - 结合
getHoliday
可获取节气或节日(如”清明”)
二、轮播图插件:vue3-carousel
自己手写轮播图需要处理触摸事件、自适应、无缝循环,兼容性很容易踩坑。vue3-carousel插件的配置就很灵活,文档也清晰,10分钟就能搭出主流轮播效果。
使用npm安装:
npm install vue3-carousel
基础用法:
<template>
<Carousel :items-to-show="3" :wrap-around="true">
<Slide v-for="item in images" :key="item.id">
<img :src="item.url" />
</Slide>
</Carousel>
</template>
- 响应式配置:通过
breakpoints
设置不同屏幕尺寸显示数量 - 支持手势滑动和自动播放(
autoplay: 3000
) - 自定义箭头和分页样式
三、剪切板插件:vue-clipboard3
复制功能(如分享链接、图片、代码片段)在项目里也是常用,原生API兼容性处理较繁琐,vue-clipboard3插件可以满足基本需求,API简洁。
使用npm安装:
npm install vue-clipboard3
基础用法:
<template>
<button @click="copyText">复制内容</button>
</template>
<script setup>
import { useClipboard } from 'vue-clipboard3';
const { toClipboard } = useClipboard();
const copyText = async () => {
try {
await toClipboard('要复制的文本');
alert('复制成功!');
} catch (e) {
alert('复制失败,请手动复制');
}
};
</script>
还支持动态绑定变量内容:
const dynamicText = ref('根据逻辑生成的文本');
await toClipboard(dynamicText.value);
以及复制富文本(如带格式的HTML):
await toClipboard('<b>加粗文本</b>', 'text/html');
四、语言国际化插件:vue-i18n
项目里需要支持中英文切换时,使用vue-i18n插件来进行配置。
使用npm安装:
npm install vue-i18n@next
基础用法:
1.创建语言包
// locales/zh-CN.js
export default {
welcome: '欢迎',
button: { confirm: '确定' }
}
2.初始化i18n实例
import { createI18n } from 'vue-i18n';
const i18n = createI18n({
locale: 'zh-CN',
messages: { 'zh-CN': zhCN, 'en-US': enUS }
});
3.在模板中使用
<h1>{{ $t('welcome') }}</h1>
<button>{{ $t('button.confirm') }}</button>
- 动态切换语言:
i18n.global.locale.value = 'en-US'
- 结合路由参数自动匹配语言
- 处理复数形式和插值变量
总结
- chinese-lunar-calendar:农历转换一键搞定
- vue3-carousel:轮播图开箱即用,适配移动端
- vue-clipboard3:剪切板操作零门槛
- vue-i18n:多语言支持标准化