mcpField
S
syncfusion-vue-common

syncfusion-vue-common

github.com/syncfusion开发069 次安装2 周前更新
代码仓库

关于 syncfusion-vue-common

syncfusion-vue-common 是面向 Vue 应用开发者的 Syncfusion Vue 通用功能技能,涵盖安装配置、国际化、动画、拖放、状态持久化和安全实践。

主要功能

  1. 01Vue 2、Vue 3 及 Nuxt 配置指引
  2. 02本地化与国际化支持
  3. 03数字、货币和日期格式化
  4. 04动画效果与全局时序设置
  5. 05拖放交互与模板定制
  6. 06状态持久化和 HTML 安全处理

适用场景

  1. 01为 Vue 应用配置 Syncfusion 组件
  2. 02为多语言界面启用 RTL 与本地化
  3. 03为组件添加动画或拖放交互
  4. 04保存组件状态并处理 HTML 安全

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/vue-ui-components-skills --skill syncfusion-vue-common

安装后在 Claude Code 中输入/syncfusion-vue-common确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-features.md
appearance-and-theming.md
getting-started.md
globalization.md
licensing-and-upgrade.md

详细介绍

Syncfusion Vue 组件的通用功能

Syncfusion Vue 组件包含全面的通用实用工具和功能,可提升用户体验、确保跨文化支持,并为所有组件提供基础能力。本技能涵盖安装设置、动画、全球化、状态管理和安全注意事项,助你构建稳健的 Vue 应用。

目录


文档与导航指南

入门

📄 阅读: references/getting-started.md

  • Vue 3 设置(Composition API、Options API)
  • Vue 2 设置(Vue CLI、SCSS 配置)
  • Nuxt 3 集成与配置
  • Quasar 框架设置
  • Vitest 测试配置

全球化

📄 阅读: references/globalization.md

  • 支持阿拉伯语、希伯来语、波斯语的从右到左(RTL)布局
  • 本地化(l10n),支持多语言
  • 使用 CLDR 数据进行国际化(i18n)
  • 数字和货币格式化
  • 日期和时间格式化

高级功能与实用工具

📄 阅读: references/advanced-features.md

  • 动画效果(FadeIn、ZoomOut、SlideUp 等)
  • 动画计时(持续时间、延迟、全局设置)
  • 拖放交互(Draggable、Droppable)
  • 模板自定义
  • 使用 enablePersistence 持久化状态
  • 安全最佳实践与 HTML 清理

快速开始

安装 Syncfusion Vue 组件包和主题包
# Install a Syncfusion component package
npm install @syncfusion/ej2-vue-calendars@latest @syncfusion/ej2-material-theme@latest --save

# Install multiple packages
npm install @syncfusion/ej2-vue-grids@latest @syncfusion/ej2-vue-charts@latest @syncfusion/ej2-material-theme@latest --save

注意: @syncfusion/ej2-base 包是所有 Syncfusion 组件的依赖项。安装任意 Syncfusion Vue 包时,它会自动安装。无需在 package.json 文件中显式添加此包。

注册许可证密钥

步骤 1: 设置环境变量:

# Windows
setx SYNCFUSION_LICENSE "Your_License_Key_Here"

# Mac/Linux
export SYNCFUSION_LICENSE='Your_License_Key_Here'

步骤 2: 使用 NPX 命令激活许可证:

npx syncfusion-license activate

注意: 有关其他许可证注册方法,请参阅 Syncfusion 许可证密钥注册文档。

基本组件设置
<template>
  <div class="app-container">
    <ejs-grid :dataSource="data" :allowPaging="true">
      <e-columns>
        <e-column field='OrderID' width='100'></e-column>
        <e-column field='CustomerID' width='100'></e-column>
        <e-column field='Freight' width='100' format='C2'></e-column>
      </e-columns>
    </ejs-grid>
  </div>
</template>

<script setup>
import { ref } from 'vue';
import { GridComponent as EjsGrid, ColumnsDirective as EColumns, ColumnDirective as EColumn, Page } from '@syncfusion/ej2-vue-grids';

const data = ref([
  { OrderID: 10248, CustomerID: 'VINET', Freight: 32.38 },
  { OrderID: 10249, CustomerID: 'TOMSP', Freight: 11.61 }
]);

// Provide services
provide('grid', [Page]);
</script>

<style>
/* Import theme CSS */
@import "../node_modules/@syncfusion/ej2-material-theme/styles/grid/index.css";
</style>

通用功能

启用状态持久化
<template>
  <ejs-grid id="persistGrid" :dataSource="data" :enablePersistence="true"></ejs-grid>
</template>

<script>
import { GridComponent } from '@syncfusion/ej2-vue-grids';

export default {
  components: { 'ejs-grid': GridComponent },
  data() {
    return {
      data: [{ OrderID: 10248, CustomerID: 'VINET', Freight: 32.38 }]
    };
  }
};
</script>
启用 RTL 支持
<template>
  <ejs-grid :dataSource="data" :enableRtl="true"></ejs-grid>
</template>

<script>
import { GridComponent } from '@syncfusion/ej2-vue-grids';
import { enableRtl } from '@syncfusion/ej2-base';

export default {
  components: { 'ejs-grid': GridComponent },
  data() {
    return { data: [{ OrderID: 10248 }] };
  },
  mounted() {
    enableRtl(true);
  }
};
</script>
添加动画效果
<template>
  <div>
    <button @click="animateElement">Animate</button>
    <div ref="element">Animated Element</div>
  </div>
</template>

<script>
import { Animation } from '@syncfusion/ej2-base';

export default {
  data() {
    return { animation: null };
  },
  mounted() {
    this.animation = new Animation({ duration: 5000 });
  },
  methods: {
    animateElement() {
      this.animation.animate(this.$refs.element, { name: 'FadeOut' });
    }
  }
};
</script>
实现拖放
<template>
  <div>
    <div ref="draggable">Drag me</div>
    <div ref="droppable">Drop here</div>
  </div>
</template>

<script>
import { Draggable, Droppable } from '@syncfusion/ej2-base';

export default {
  mounted() {
    new Draggable(this.$refs.draggable, { clone: false });
    new Droppable(this.$refs.droppable);
  }
};
</script>

评论

支持 Markdown