Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • UI 框架推荐(Element Plus、Ant Design Vue 等)

UI 框架推荐(Element Plus、Ant Design Vue 等)

在 Vue 3 开发中,UI 框架能够显著提升开发效率,提供一致的美观组件和开箱即用的功能。Vue 3 生态中涌现了多个优秀的 UI 框架,如 Element Plus 和 Ant Design Vue,它们适配了 Vue 3 的新特性,成为开发者的热门选择。本节将介绍这些框架的特点、安装方法和基本使用,并对比它们的优劣,帮助你在项目中选择合适的 UI 框架。

为什么使用 UI 框架?

  • 效率:预构建组件减少重复开发。
  • 一致性:统一的设计风格和交互体验。
  • 功能丰富:内置复杂组件(如表格、表单)。
  • 社区支持:广泛的文档和生态资源。

推荐的 UI 框架

1. Element Plus

概述

Element Plus 是 Element UI 的 Vue 3 版本,由饿了么团队维护,专注于桌面端应用,风格简洁现代。

特点

  • 组件丰富:提供按钮、表单、表格、弹窗等 60+ 组件。
  • Vue 3 优化:支持 Composition API 和 Tree-shaking。
  • 国际化:内置多语言支持。
  • 主题定制:支持 CSS 变量和在线主题编辑。

安装

npm install element-plus

配置

// src/main.js
import { createApp } from 'vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css'; // 默认样式
import App from './App.vue';

const app = createApp(App);
app.use(ElementPlus);
app.mount('#app');

示例:按钮和表单

<template>
  <div>
    <el-button type="primary" @click="showMessage">点击我</el-button>
    <el-form :model="form" label-width="120px">
      <el-form-item label="用户名">
        <el-input v-model="form.username" />
      </el-form-item>
      <el-form-item>
        <el-button type="success" @click="submit">提交</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
import { ref } from 'vue';
import { ElMessage } from 'element-plus';

export default {
  setup() {
    const form = ref({ username: '' });

    const showMessage = () => {
      ElMessage.success('按钮被点击');
    };

    const submit = () => {
      ElMessage.info(`提交用户: ${form.value.username}`);
    };

    return { form, showMessage, submit };
  }
};
</script>
  • 效果:显示蓝色按钮和表单,点击触发消息提示。

优点

  • 易上手,文档详尽。
  • 与 Vue 3 无缝集成。
  • 适合中小型项目。

局限

  • 样式定制复杂,需深入 SCSS。
  • 移动端支持较弱。

2. Ant Design Vue

概述

Ant Design Vue 是 Ant Design 的 Vue 实现,由蚂蚁集团维护,提供企业级组件,风格偏向现代化和专业化。

特点

  • 组件丰富:70+ 高质量组件,覆盖复杂场景。
  • TypeScript 支持:原生支持类型定义。
  • 主题定制:强大的 Less 变量自定义。
  • 响应式:适配桌面和移动端。

安装

npm install ant-design-vue

配置

// src/main.js
import { createApp } from 'vue';
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css'; // 重置样式
import App from './App.vue';

const app = createApp(App);
app.use(Antd);
app.mount('#app');

示例:按钮和表格

<template>
  <div>
    <a-button type="primary" @click="showNotification">点击我</a-button>
    <a-table :columns="columns" :data-source="data" />
  </div>
</template>

<script>
import { ref } from 'vue';
import { notification } from 'ant-design-vue';

export default {
  setup() {
    const columns = [
      { title: '姓名', dataIndex: 'name', key: 'name' },
      { title: '年龄', dataIndex: 'age', key: 'age' }
    ];
    const data = ref([
      { key: '1', name: 'Alice', age: 25 },
      { key: '2', name: 'Bob', age: 30 }
    ]);

    const showNotification = () => {
      notification.success({ message: '成功', description: '按钮被点击' });
    };

    return { columns, data, showNotification };
  }
};
</script>
  • 效果:显示按钮和表格,点击弹出成功通知。

优点

  • 企业级设计,功能强大。
  • 优秀的 TypeScript 支持。
  • 响应式布局完善。

局限

  • 学习曲线稍陡。
  • 包体积较大(约 500KB,未压缩)。

其他值得关注的框架

  1. Naive UI:
    • 特点:轻量、现代,支持 Vue 3 和 TypeScript。
    • 安装:npm install naive-ui
    • 适合:追求简洁和性能的项目。
  2. Vuetify 3(开发中):
    • 特点:Material Design 风格,Vue 3 适配中。
    • 适合:喜欢 Google 设计规范的项目。

对比与选择

框架Element PlusAnt Design VueNaive UI
组件数量60+70+50+
TypeScript良好优秀优秀
体积中等 (~200KB)较大 (~500KB)较小 (~100KB)
风格简洁现代企业级专业清新简约
学习曲线低中等低
适用场景中小型项目企业级应用轻量应用

选择建议

  • Element Plus:适合快速开发、Vue 3 新手或中小型项目。
  • Ant Design Vue:适合企业级项目、需要强大功能和 TypeScript 支持。
  • Naive UI:适合追求轻量和现代设计的项目。

实践:结合 Pinia 和 Element Plus

配置 Pinia

npm install pinia
// src/main.js
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import App from './App.vue';

const app = createApp(App);
app.use(createPinia());
app.use(ElementPlus);
app.mount('#app');

Store

// src/stores/user.js
import { defineStore } from 'pinia';
import { ref } from 'vue';

export const useUserStore = defineStore('user', () => {
  const users = ref([]);
  const addUser = (name) => users.value.push({ id: Date.now(), name });
  return { users, addUser };
});

使用

<template>
  <div>
    <el-input v-model="newUser" placeholder="输入用户名" />
    <el-button type="primary" @click="addUser">添加</el-button>
    <el-table :data="users" style="width: 100%">
      <el-table-column prop="id" label="ID" />
      <el-table-column prop="name" label="姓名" />
    </el-table>
  </div>
</template>

<script>
import { ref } from 'vue';
import { useUserStore } from '@/stores/user';
import { ElMessage } from 'element-plus';

export default {
  setup() {
    const userStore = useUserStore();
    const newUser = ref('');

    const addUser = () => {
      if (newUser.value.trim()) {
        userStore.addUser(newUser.value);
        ElMessage.success('用户添加成功');
        newUser.value = '';
      }
    };

    return { users: userStore.users, newUser, addUser };
  }
};
</script>
  • 效果:输入用户名,点击添加,显示表格并弹出成功提示。

注意事项

  1. 按需加载:
    • Element Plus 和 Ant Design Vue 支持 Tree-shaking,但大型项目可配置按需导入:
      // vite.config.js
      import Components from 'unplugin-vue-components/vite';
      import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
      
      export default {
        plugins: [
          Components({ resolvers: [ElementPlusResolver()] })
        ]
      };
      
  2. 主题冲突:
    • 多框架混用时注意 CSS 隔离。
  3. 版本兼容:
    • 确保框架版本与 Vue 3 匹配。

总结

Element Plus 和 Ant Design Vue 是 Vue 3 生态中的优秀 UI 框架,分别适合不同规模和风格的项目。Naive UI 等新兴框架也值得关注。通过本节的介绍和实践,你可以根据需求选择合适的框架,并快速集成到项目中。下一节将探讨 TypeScript 的深度整合,带你进入类型安全的 Vue 3 开发!

Last Updated:: 2/24/25, 2:55 PM