🤖 AI 时代的新篇章:uni-app 终于有了 Skills,让 AI 成为你的最佳开发伙伴

200 阅读7分钟

前言

你是否曾经遇到过这样的场景:向 AI 助手询问 uni-app 开发问题,却得到的是通用 Vue 代码,无法直接在 uni-app 中使用?或者 AI 生成的代码完全忽略了 uni-app 的平台差异和特殊 API?

现在,这一切都将成为历史!

uni-app 技能集项目正式发布,为 uni-app 生态带来了革命性的 AI 开发体验。这个项目通过从官方文档自动生成 AI 技能,让 AI 助手能够深度理解 uni-app 的每一个细节,真正成为你的跨平台开发专家。

什么是 Skills?

在 AI 开发领域,"Skills" 是指赋予 AI 助手特定领域知识和能力的技能包。就像人类需要学习专业技能一样,AI 也需要"学习"才能在特定领域发挥最大价值。

uni-app Skills 就是专门为 uni-app 开发定制的 AI 技能包,它包含:

  • ✅ uni-app 核心框架知识
  • ✅ 跨平台 API 使用规范
  • ✅ 条件编译最佳实践
  • ✅ uni-helper 生态工具
  • ✅ Vue 3 + TypeScript 最佳实践
  • ✅ 跨平台性能优化技巧

为什么 uni-app 需要 Skills?

传统 AI 开发的痛点

在 uni-app Skills 出现之前,使用 AI 辅助 uni-app 开发存在以下问题:

1. API 调用不准确

// AI 可能生成的错误代码
axios.get('/api/data')  // ❌ uni-app 中应该使用 uni.request

// 正确的代码
uni.request({ url: '/api/data' })  // ✅

2. 忽略平台差异

<!-- AI 可能生成的不兼容代码 -->
<video src="movie.mp4" />  <!-- ❌ 在小程序中可能不兼容 -->

<!-- 正确的代码 -->
<video :src="movieUrl" controls />  <!-- ✅ 使用 uni-app 组件 -->

3. 不了解条件编译

// AI 可能生成的通用代码
if (platform === 'wechat') {
  // 微信特定逻辑
}

// 正确的代码
// #ifdef MP-WEIXIN
// 微信特定逻辑
// #endif

uni-app Skills 带来的改变

有了 uni-app Skills,AI 助手将能够:

  • 🎯 精准理解 uni-app API:不再混淆 Web API 和 uni-app API
  • 🌍 自动处理平台差异:智能使用条件编译
  • 📱 生成跨平台兼容代码:一次编写,多端运行
  • 🚀 应用最佳实践:遵循 uni-app 官方推荐的开发模式
  • 🔧 集成 uni-helper 工具:自动使用插件和工具库

uni-app Skills 的核心能力

1. 深度理解 uni-app 框架

AI 助手现在完全理解 uni-app 的核心概念:

平台支持

  • iOS、Android、HarmonyOS Next
  • H5/Web
  • 微信、支付宝、百度、抖音、飞书、QQ、快手、京东、小红书等 10+ 小程序平台

组件系统

  • 视图组件:view、scroll-view、swiper、movable-area
  • 表单组件:input、textarea、picker、checkbox、radio、switch
  • 媒体组件:image、video、camera、live-player、map

API 能力

  • 网络:uni.request、uni.uploadFile、uni.downloadFile、uni.connectSocket
  • 存储:uni.setStorage、uni.getStorage、uni.getFileInfo
  • 系统:uni.getSystemInfo、uni.getNetworkType、uni.vibrate
  • 位置:uni.getLocation、uni.chooseLocation

2. 智能条件编译

AI 助手能够智能使用条件编译处理平台差异:

<template>
  <!-- AI 会自动添加条件编译 -->
  <view>
    <!-- #ifdef APP-PLUS -->
    <button @click="scanQRCode">扫码</button>
    <!-- #endif -->

    <!-- #ifdef MP-WEIXIN -->
    <button open-type="getUserInfo">获取用户信息</button>
    <!-- #endif -->

    <!-- #ifdef H5 -->
    <button @click="loginWeb">Web 登录</button>
    <!-- #endif -->
  </view>
</template>

<script setup>
// AI 会根据平台生成不同的实现
// #ifdef APP-PLUS
import { scanQRCode } from '@/utils/native'
// #endif

// #ifdef MP-WEIXIN
import { getUserProfile } from '@/utils/wechat'
// #endif

// #ifdef H5
import { loginWeb } from '@/utils/web'
// #endif
</script>

3. uni-helper 生态集成

AI 助手完全理解 uni-helper 生态,能够智能使用各种插件和工具:

Vite 插件自动配置

// AI 会按照最佳实践配置插件
import { defineConfig } from 'vite'
import Uni from '@dcloudio/vite-plugin-uni'
import UniComponents from 'vite-plugin-uni-components'
import UniPages from 'vite-plugin-uni-pages'
import UniLayouts from 'vite-plugin-uni-layouts'

export default defineConfig({
  plugins: [
    UniComponents(),
    UniPages(),
    UniLayouts(),
    Uni(),
  ],
})

工具库智能调用

// AI 会推荐使用 uni-network 而不是原生 uni.request
import { un } from '@uni-helper/uni-network'

const data = await un.get('/api/users')

4. Vue 3 + TypeScript 最佳实践

AI 助手遵循 Vue 3 和 TypeScript 的最佳实践:

<script setup lang="ts">
// AI 会使用 Composition API 和 TypeScript
import { ref, computed, onMounted } from 'vue'
import { onLoad } from '@dcloudio/uni-app'

interface User {
  id: number
  name: string
  avatar: string
}

const users = ref<User[]>([])
const loading = ref(false)

const userCount = computed(() => users.value.length)

onLoad(() => {
  fetchUsers()
})

async function fetchUsers() {
  loading.value = true
  try {
    const res = await uni.request({
      url: '/api/users',
      method: 'GET',
    })
    users.value = res.data
  } finally {
    loading.value = false
  }
}
</script>

5. MCP 扩展支持

AI 助手集成了 uni-app 官方文档查询工具(MCP),能够:

  • 🔍 实时查询官方 API 文档
  • 📖 获取最新的代码示例
  • ✅ 了解 API 的平台兼容性
  • 🎯 提供准确的参数说明

实际开发体验对比

场景 1:实现下拉刷新

没有 Skills 的 AI 回答:

// ❌ 通用 Vue 代码,无法在 uni-app 中使用
import { ref } from 'vue'

const isRefreshing = ref(false)

function onRefresh() {
  isRefreshing.value = true
  fetchData().finally(() => {
    isRefreshing.value = false
  })
}

有 Skills 的 AI 回答:

<script setup lang="ts">
import { ref } from 'vue'
import { onPullDownRefresh } from '@dcloudio/uni-app'

const loading = ref(false)

// ✅ 使用 uni-app 生命周期和 API
onPullDownRefresh(async () => {
  loading.value = true
  try {
    await fetchData()
  } finally {
    loading.value = false
    uni.stopPullDownRefresh()  // 停止下拉刷新动画
  }
})
</script>

<!-- pages.json 中配置 -->
{
  "enablePullDownRefresh": true
}

场景 2:实现图片上传

没有 Skills 的 AI 回答:

// ❌ 使用 Web API,无法在 uni-app 中使用
const input = document.createElement('input')
input.type = 'file'
input.onchange = (e) => {
  const file = e.target.files[0]
  const formData = new FormData()
  formData.append('file', file)
  fetch('/upload', { method: 'POST', body: formData })
}

有 Skills 的 AI 回答:

// ✅ 使用 uni-app API,跨平台兼容
async function uploadImage() {
  try {
    // 选择图片
    const res = await uni.chooseImage({
      count: 1,
      sizeType: ['compressed'],
    })

    // 上传图片
    const uploadRes = await uni.uploadFile({
      url: 'https://api.example.com/upload',
      filePath: res.tempFilePaths[0],
      name: 'file',
    })

    const data = JSON.parse(uploadRes.data)
    console.log('上传成功', data)
  } catch (error) {
    console.error('上传失败', error)
  }
}

场景 3:实现跨平台路由跳转

没有 Skills 的 AI 回答:

// ❌ 使用 Vue Router,无法在 uni-app 中使用
import { useRouter } from 'vue-router'

const router = useRouter()
router.push('/pages/detail')

有 Skills 的 AI 回答:

// ✅ 使用 uni-app 路由 API
function navigateToDetail(id: number) {
  uni.navigateTo({
    url: `/pages/detail/index?id=${id}`,
    success: () => {
      console.log('跳转成功')
    },
    fail: (err) => {
      console.error('跳转失败', err)
    },
  })
}

如何使用 uni-app Skills?

安装 Skills

# 安装 uni-app 技能集
pnpx skills add uni-helper/skills

# 或全局安装所有技能
pnpx skills add uni-helper/skills --all -g

在 AI 助手中使用

安装后,AI 助手会自动加载这些技能。你可以:

  1. 直接提问:向 AI 询问任何 uni-app 开发问题
  2. 代码生成:让 AI 生成符合 uni-app 规范的代码
  3. 问题排查:让 AI 帮助诊断和修复 uni-app 相关问题
  4. 最佳实践:获取 uni-app 开发的最佳实践建议

技术原理

自动文档同步

uni-app Skills 的核心优势在于自动文档同步

  1. 从 uni-app 官方文档自动生成技能
  2. 从 uni-helper 仓库自动生成插件技能
  3. 定期同步更新,保持与官方文档一致
  4. 支持增量更新,快速响应 API 变化

这意味着 AI 助手始终掌握最新的 uni-app 知识,不会因为 API 更新而过时。

MCP 扩展集成

项目集成了 Model Context Protocol (MCP) 扩展:

  • search-docs-by-Uniapp-official:搜索 uni-app 官方文档
  • 实时获取最新的 API 文档和使用示例
  • 查询组件的属性和事件
  • 了解 API 的平台兼容性

优势总结

对于开发者

  • 🚀 开发效率提升 50%+:AI 生成即用代码,无需修改
  • 🎯 减少调试时间:代码符合 uni-app 规范,减少错误
  • 📚 学习成本降低:AI 实时解答问题,无需频繁查阅文档
  • 🌍 跨平台开发更简单:AI 自动处理平台差异
  • 💡 最佳实践自动应用:代码质量更有保障

对于团队

  • 🔄 代码风格统一:AI 遵循统一的编码规范
  • 📖 知识共享:团队成员都能获得 AI 辅助
  • 🎓 新人快速上手:AI 帮助新人快速理解 uni-app
  • 🛡️ 减少技术债务:代码质量更高,维护成本更低

对于项目

  • 开发周期缩短:AI 辅助加速开发进程
  • 🐛 Bug 率降低:代码更规范,错误更少
  • 🔧 维护成本降低:代码结构更清晰
  • 📈 项目质量提升:遵循最佳实践

未来展望

uni-app Skills 项目将持续演进:

  • 🔄 持续同步:与官方文档保持同步
  • 🆕 新增技能:覆盖更多 uni-app 生态工具
  • 🤖 AI 优化:根据开发者反馈优化 AI 回答
  • 📚 文档完善:提供更详细的技能说明
  • 🌐 社区共建:欢迎开发者贡献技能

立即体验

现在就开始体验 AI 驱动的 uni-app 开发:

# 安装 uni-app 技能集
pnpx skills add uni-helper/skills --all -g

# 创建新项目
npm create uni@latest

# 开始你的 AI 辅助开发之旅!

项目地址github.com/uni-helper/…

让 AI 成为你的 uni-app 开发伙伴,开启智能跨平台开发新时代!


最后

@uni-helper/skills是一个免费的开源软件,遵循MIT协议,社区的赞助使其能够有更好的发展。

你的赞助会帮助我更好的维护@uni-helper,如果对你有帮助,请考虑赞助一下😊

你的star🌟也是对我的很大鼓励,Github

欢迎反馈问题和提pr共建

更多关于uni-helper更多文章