首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用云开发 Copilot 轻松开发一款待办事项列表应用

使用云开发 Copilot 轻松开发一款待办事项列表应用

原创
作者头像
陈明勇
修改2024-12-20 14:43:03
修改2024-12-20 14:43:03
78215
举报

云开发 Copilot

云开发 Copilot 是腾讯云云开发推出的一款 AI 开发辅助工具,可以帮助用户快速生成多种类型的应用功能,包括低代码应用、页面、组件、数据模型、CMS 内容等。开发者可以使用云开发 Copilot 快速构建自己的小程序、web 等云开发应用,加快开发效率,提升开发体验。

云开发 Copilot 的使用方式

云开发 Copilot 目前提供了两种使用方式:一种是游客体验,另一种是在拥有腾讯云账号的前提下开通 微搭免费体验版 或者 使用已有的云开发环境

游客体验 游客版,无需登录即可使用云开发 Copilot 部分功能 体验地址:云开发 Copilot 游客版 游客可以免费体验截图生成需求、AI答疑等功能 AI 生成应用/组件/区块等功能需要开通云环境限时免费使用


正式体验 开通微搭免费体验版的地址:https://console.cloud.tencent.com/lowcode 使用云开发 Copilot 功能:进入 云开发 Copilot 或者可以在 云开发平台 中右下角找到并使用。

云开发 Copilot 官网教程链接:https://docs.cloudbase.net/ai/copilot/introduce

云开发 Copilot 的五大使用场景

云开发 Copilot 适用于以下五大场景:

  • 截图生成提示词和需求
  • AI 生成低代码组件
  • AI 生成低代码应用
  • AI 生成低代码页面/区块
  • AI 优化低代码组件的样式

截图生成提示词和需求

上传一张截图(设计稿、参考的网站截图等),云开发 Copilot 会自动生成相关的需求提示词。得到需求的提示词之后,再配合云开发 Copilot 或者其他 AI 编程助手,可以快速把截图变成代码。

AI 生成低代码组件

针对于复杂的业务场景,云开发 Copilot 可以根据用户的需求,自动生成带有逻辑的相应的组件代码,帮助开发者快速实现业务功能。

AI 生成低代码应用

云开发 Copilot 能够依据关键字迅速生成小程序 / web 应用,操作简单且高效。只需一句话,即可生成可编辑的应用,该应用支持发布至小程序和网页。

AI 生成低代码页面/区块

云开发 Copilot能够依据关键字迅速生成小程序 / web 页面,操作简单且高效。只需一句话,即可生成可以可视化编辑的页面/区块,该页面支持发布至小程序和网页。

AI 优化低代码组件的样式

可以通过 云开发 Copilot 优化低代码组件的样式,无需编写代码,让组件更符合用户需求,提高用户体验。

JSX 组件(AI 代码块)

云开发 Copilot 能够根据需求生成代码并展示在应用中,其核心优势之一便是 JSX 组件的灵活性和通用性。作为一个强大的源码组件,JSX 支持快速引入外部组件库(如 TDesignAntd 等),可配置实现多样化的组件功能,包括水印、步骤条、级联选择、评分、滑动输入条等。

利用 云开发 Copilot AI 的能力,原生 JSX 代码块可以根据需求自动生成,并直接嵌入到 JSX 组件中。通过这种方式,开发者可以将复杂需求以组件形式快速展现,显著提升开发效率和可扩展性。

待办事项列表应用

以开发一款 待办事项列表应用 为例,详细介绍如何通过云开发 Copilot 快速生成并优化一款完整的应用。待办事项列表应用是一款用于组织和管理任务的工具,它在日常生活、工作和学习中非常实用,能够帮助我们更好地安排时间和提高效率。

快速生成应用

通过云开发 Copilot,我们可以快速生成一个 待办事项列表应用,具体步骤如下:

  • 1、访问 云开发平台,通过右下角的图标与 云开发 Copilot 进行对话。
  • 2、输入 “@”,在弹出的智能体列表里选择 “AI生成组件” 智能体。
  • 3、将文字需求发给 云发开 Copilot,让它为我们生成前端组件。

组件生成后,我们可以对组件进行预览,如果对组件效果不满意,我们可以继续对话提出修改建议,但目前来看暂不需要。

  • 4、根据所生成的组件 创建应用

视频演示

完善组件

目前待办事项信息只保存了单一的 任务 内容,还缺少一个重要字段:截止时间。因此我们需要向 云开发 Copilot 追加修改的需求。提示词如下:

保持当前的黑白风格,添加一个字段来保存截止时间,该字段的值不需要用户输入,你可以添加一个日历图标,用户点击日历图标后自由选择一个日期,然后隐藏日历组件。另外,截止时间字段只在展示待办事项列表时显示,添加待办事项的表单可以不用显示。这样一来布局肯定会改变,可以适当调整布局以保证美观性。

将提示词发给 云开发 Copilot 之后,它能够按照我们追加的需求调整组件。

视频演示

修复 bug 与优化样式

在上个视频末尾的演示阶段,你会发现当前应用存在着一个 bug:每个待办事项的截止时间引用了同一个变量 dueDate,导致数据污染的问题。AI 生成的代码出现 bug 在现阶段比较正常,我们要做的是不断提醒 AI,让其不断完善代码。因此我们需要再次向 云开发 Copilot 提出需求,修复这个 bug。提示词如下:

每个待办事项的截止时间的值应在 task 对象用一个单独的字段保存,而不是引用同一个变量 dueDate,请修复这个 bug。

云开发 Copilot 根据我们的需求对组件进行调整后,bug 最终被修复。

接下来是优化样式的步骤。从下图可以看到,日历图标的样式和展开后的灰色背景色显得不够美观,因此我们可以对其进行调整。具体优化过程请参考下方的演示视频。

优化后的效果如下图所示:

到这里,一款简单的待办事项列表应用就开发完成了。

视频演示

数据持久化

目前,待办事项的数据存储在内存中,为了实现数据持久化,我们需要引入数据库。云开发平台提供了云数据库模块,允许我们在应用中直接使用。因此,我们只需在云数据库模块中创建数据模型并调整相关代码即可。接下来,将介绍如何创建数据模型并在 待办事项列表应用 中进行集成。

创建数据模型

  • 1、首先,进入云数据库模块,选择创建方式。
    • 创建模式选择 创建数据库并配置数据模型,根据不同的场景选择合适的模式。
    • 创建方式选择 从空白创建
    • 写入到数据库选择 云开发默认文档类型数据库
  • 2、然后,填写模型名称和模型标识。
  • 3、其次,添加任务、截止时间以及完成状态字段,填写 字段名称字段标识数据类 以及 格式。其他信息根据实际情况进行填写。
  • 4、最后,点击 完成 按钮即可完成数据模型的创建。

代码集成

数据模型创建完成之后,接下来是在代码里集成数据模型。

目前,云开发 Copilot 还不支持自动生成与云数据库及数据模型相关的操作代码,也无法将 JSX 中的元素(例如按钮)直接转换为 可视化开发 中的按钮组件,从而支持可视化设计与开发。因此,我们需要手动编写这部分代码。好在 JSX 组件编辑器提供了快捷的代码生成按钮,并且有详细的数据模型 API 接入文档,帮助我们快速完成开发。我相信随着 云开发 Copilot 的不断迭代与升级,未来我们可以实现更多自动化,从而真正解放双手。

以下是对数据模型增删改查的函数封装,仅供参考。

代码语言:js
复制
// 1. 查询任务列表
const fetchTasks = async () => {
    try {
        const result = await $w.cloud.callDataSource({
            dataSourceName: "dbsx", // 数据模型标识
            methodName: "wedaGetRecordsV2",
            params: {
                getCount: true,
                pageSize: 100,
                pageNumber: 1,
                orderBy: [{ createdAt: 'desc' }],
            }
        });
        setTasks(result.records || []);
    } catch (e) {
        console.log("查询任务失败", e.code, e.message);
    }
};

// 2. 新增任务
const addTask = async () => {
    if (newTask.trim()) {
        try {
            const dueDateTimestamp = selectedDate ? new Date(selectedDate).getTime() : null;

            const result = await $w.cloud.callDataSource({
                dataSourceName: "dbsx",
                methodName: "wedaCreateV2",
                params: {
                    data: {
                        task: newTask,
                        dueDate: dueDateTimestamp,
                        completed: false,
                    }
                }
            });

            console.log("任务添加成功", result);
            fetchTasks(); // 刷新任务列表
        } catch (e) {
            console.log("新增任务失败", e.code, e.message);
        }
        setNewTask('');
        setSelectedDate(null);
    }
};

// 3. 删除任务
const deleteTask = async (id) => {
    try {
        const result = await $w.cloud.callDataSource({
            dataSourceName: "dbsx",
            methodName: "wedaDeleteV2",
            params: {
                filter: {
                    where: {
                        _id: { $eq: id },
                    }
                }
            }
        });
        console.log("任务删除成功", result);
        fetchTasks(); // 刷新任务列表
    } catch (e) {
        console.log("删除任务失败", e.code, e.message);
    }
};

// 4. 更新任务
const saveEdit = async () => {
    try {
        const dueDateTimestamp = selectedDate ? new Date(selectedDate).getTime() : null;
        const result = await $w.cloud.callDataSource({
            dataSourceName: "dbsx",
            methodName: "wedaUpdateV2",
            params: {
                data: {
                    task: newTask,
                    dueDate: dueDateTimestamp,
                    completed: false,  // 保持原有的状态,或者根据需求修改
                },
                filter: {
                    where: {
                        _id: { $eq: editingId }
                    }
                }
            }
        });
        console.log("任务更新成功", result);
        setEditingId(null);
        setNewTask('');
        setSelectedDate(null);
        fetchTasks(); // 刷新任务列表
    } catch (e) {
        console.log("更新任务失败", e.code, e.message);
    }
};

// 5. 任务完成状态切换
const toggleComplete = async (id) => {
    const task = tasks.find(task => task._id === id);
    if (task) {
        try {
            const result = await $w.cloud.callDataSource({
                dataSourceName: "dbsx",
                methodName: "wedaUpdateV2",
                params: {
                    data: { completed: !task.completed },
                    filter: {
                        where: { _id: { $eq: id } }
                    }
                }
            });
            console.log("任务状态更新成功", result);
            fetchTasks(); // 刷新任务列表
        } catch (e) {
            console.log("更新任务状态失败", e.code, e.message);
        }
    }
};

最终效果演示

小结

在本文中,首先对云开发 Copilot 进行了介绍,然后通过一个待办事项列表应用的案例,详细演示了如何利用 云开发 Copilot 实现从快速生成到优化的完整开发流程。

主要内容包括:

  • 快速生成应用:通过简单的文字需求,利用 AI 自动生成组件的功能,轻松搭建待办事项列表应用。
  • 完善功能:动态添加关键字段(如截止时间),优化布局,使功能更加贴合实际使用场景。
  • 修复 bug:针对开发过程中的数据引用问题,提出修复 bug 的需求。
  • 优化样式:调整组件样式,使界面更美观,提升视觉效果。
  • 数据持久化:集成云数据模型,保证重新访问应用时数据不丢失。

通过这些实践,我们可以看到,云开发 Copilot 不仅可以快速满足功能需求,还能在开发过程的各个阶段协助优化和完善应用,极大地方便了开发者。


你好,我是陈明勇,一名热爱技术、乐于分享的开发者,同时也是开源爱好者。

成功的路上并不拥挤,有没有兴趣结个伴?

关注我,加我好友,一起学习一起进步!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 云开发 Copilot
    • 云开发 Copilot 的使用方式
    • 云开发 Copilot 的五大使用场景
      • 截图生成提示词和需求
      • AI 生成低代码组件
      • AI 生成低代码应用
      • AI 生成低代码页面/区块
      • AI 优化低代码组件的样式
    • JSX 组件(AI 代码块)
  • 待办事项列表应用
    • 快速生成应用
    • 完善组件
    • 修复 bug 与优化样式
    • 数据持久化
      • 创建数据模型
      • 代码集成
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档