介绍一些js插件的用法

最近在项目中尝试了几个实用的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:多语言支持标准化