记录Vue中比较流行且好用的一些组件

ByteRiftMaster
• 阅读 965

1.剪切板组件,复制文本:vue-clipboard3

npm install --save vue-clipboard3
import useClipboard from 'vue-clipboard3';
const { toClipboard } = useClipboard();
const copyPreviewPath = async (string) => {
      try {
        await toClipboard(string);
        message.success("文件路径复制成功!");
      } catch (e) {
        console.error(e);
        
        message.error("复制失败!您的浏览器不支持复制功能");
      }
    };
<div class="icon" @click="copyPreviewPath(files.url)">
  <FolderOutlined/>
</div>

2.图片视口懒加载组件:vue3-lazy

npm install vue3-lazy -S
// 图片懒加载
export const lazyPlugin = {
  install(app) {
    // 自定义指令:
    app.directive("img-lazy", {
      mounted(el, binding) {
        // el 指令绑定得那个元素 img
        //bindding: binding.value 指令等于号后面绑定得表达式得值 这里指图片url地址

        const { stop } = useIntersectionObserver(
          el,
          ([{ isIntersecting }], observerElement) => {
            if (isIntersecting) {
              //图片进入视觉入口了
              el.src = binding.value;
              stop();
            }
          }
        );
      },
    });
  },
};
import { lazyPlugin } from "@/utils/use-lazy-data.js";

<img v-img-lazy="baseUrl + item.url" alt="" :key="item.url" />

3.多语言切换、国际化组件 vue-i18n

npm install vue-i18n@next --save

在src目录下新建lang文件夹和index.js文件配置message变量

import { createI18n } from 'vue-i18n'

const messages = {
    en: {
        home: {
            header: '',
        },
    },
    cn: {
        home: {
            header: '',
        }
    }
}

// 配置项
const i18n = createI18n({
    legacy: false, // 是否使用组合式API
    locale: 'cn', // 默认语言环境
    fallbackLocale: 'en',  //备用语言环境
    messages
})

export default i18n
// 在main.js中use
import { createApp } from 'vue'
import App from './App.vue'
import i18n from './lang/index'  

createApp(App)
    .use(i18n)
    .mount('#app')
// 模板文件中使用
<script setup>
import { useI18n } from "vue-i18n";  // 引用组件
const { t, locale } = useI18n();  // 解构调用函数

function setLang(laug) {
    locale.value = laug  // 设置语言模式
}
</script>
<template>
    <div @click="setLang('cn')">{{ t("home.title") }}</div>
    <div @click="setLang('en')">英文模式</div>
</template>

4.AutoAnimate 自动为DOM添加过渡动画的一个库

npm install @formkit/auto-animate

开源、免费、可商用

5.在线可编辑表格,类似excel的js绘制Canvas表格

5.1 Luckysheet
这个是最接近原生excel的在线电子表格,各方面功能都很完善
缺点是应用时出现了刷新整屏白屏的情况
3版本以后换别的版本

5.2 VTable
这个是字节出的一款在线电子表格,截止到2023.11.7,目前的版本是0.13,性能优越,但是目前还是展示为主,在线编辑等很多东西还在开发中

5.3 Antv S2
这个是Antdesign出的在线电子表格
API比较多,需要自己二次开发的配置比较齐全
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
svg自适应写法
svg自适应写法<pre<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleDocument</title</head<body<divstyle"width:30%;height:3.6rem;"<svg
Stella981 Stella981
3年前
Flutter接入现有iOS工程(混编)、开发调试、打包发布精简教程
本教程是在xcode11.1、cocospod1.7.5、flutter1.10.15pre.115下完成的。    1.安装flutter    按照官网的教程,一步一步来,没什么好说的。https://flutterchina.club/setupmacos/(https://ww
Stella981 Stella981
3年前
InsightFace源码以及pre
一下摘自:https://blog.csdn.net/Fire\_Light\_/article/details/79602705(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2FFire_Light_%2Farticle%2Fdetails%2F7960
Stella981 Stella981
3年前
Python获取 当前目录、上一级目录
<pre<spanstyle"color:0000ff"import</span<spanstyle"color:000000"os</span<spanstyle"color:0000ff"print</span<spanstyle"color:800000"'</span<spanstyle"c
Easter79 Easter79
3年前
TiDB Pre
8月30日,TiDB发布PreGA版。该版本对MySQL兼容性、SQL优化器、系统稳定性、性能做了大量的工作。TiDB:SQL查询优化器调整代价模型优化索引选择,支持不同类型字段比较的索引选择支持基于贪心算法的JoinReorder
Stella981 Stella981
3年前
Jenkins配置下拉菜单联动效果
  在使用Jenkins集成时,经常需要配置一些环境信息,由于测试、线上、预发布需要切换环境和域名,需要在Jenkins中配置下拉菜单联动效果。  首先选择参数化构建过程,然后首先配置环境,环境分为:测试环境、预发布环境、正式环境,选择的组件为ChoiceParameter,Name定义为environment,选项为test、pre、onli
Stella981 Stella981
3年前
Pre
PAT甲级1119,我先在CSDN上面发布的这篇文章:https://blog.csdn.net/weixin\_44385565/article/details/89737224(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fweixin_443855
Stella981 Stella981
3年前
Android MVP模式
1、MVP模式简介相信大家对MVC都是比较熟悉了:MModel模型、VView视图、CController控制器,MVP作为MVC的演化版本,那么类似的MVP所对应的意义:MModel模型、VView视图、PPresenter表示器。从MVC和MVP两者结合来看,Controlller/Pre
Wesley13 Wesley13
3年前
Unity 获取场景中所有目标对象(包括不激活的对象)
usingUnityEngine;usingUnityEditor;usingSystem.Collections.Generic;publicclassExampleScript:MonoBehaviour{//获取场景中所有目标对象(包括不激活的对象)不包括Pre
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(