引言
最近在学习React,Marscode的在线IDE真的很好用,非常适合学习新技术的时候写一些小demo,即开即用,省心省力。下面记录一下我在Marscode上使用React实现一个简单待办事项列表的实践
需求
用户可以添加、编辑和删除待办事项
开发流程
环境搭建
使用Marscode搭建React开发环境非常简单。
- 打开Marscode首页,新建一个项目
- 在右侧的模板中选择Web下面的React模板,再给项目娶个名字,点击创建即可
- 创建后就来到了经典的IDE布局的页面,不同的是右边多了一个AI助手,这也是这个在线IDE的强大之处,可以随时使用AI来帮助我们开发。
开发
使用AI协助开发,对于简单的需求,我们可以直接试着让AI帮我们实现。比如现在我们要做一个代办事项列表,功能是用户可以添加、编辑和删除待办事项,我们可以直接丢给AI,看看AI的回答能否帮到我们。
发现AI直接帮我们把todolist这个组件的代码给写出来了
import React, { useState } from 'react';
interface Todo {
id: number;
text: string;
completed: boolean;
}
const TodoList: React.FC = () => {
const [todos, setTodos] = useState<Todo[]>([]);
const [newTodo, setNewTodo] = useState('');
const addTodo = () => {
if (newTodo.trim()!== '') {
setTodos([...todos, { id: Date.now(), text: newTodo, completed: false }]);
setNewTodo('');
}
};
const toggleTodo = (id: number) => {
setTodos(
todos.map((todo) =>
todo.id === id? {...todo, completed:!todo.completed } : todo
)
);
};
const editTodo = (id: number, newText: string) => {
setTodos(
todos.map((todo) =>
todo.id === id? {...todo, text: newText } : todo
)
);
};
const deleteTodo = (id: number) => {
setTodos(todos.filter((todo) => todo.id!== id));
};
return (
<div>
<h1>待办事项列表</h1>
<input
type="text"
value={newTodo}
onChange={(e) => setNewTodo(e.target.value)}
placeholder="添加新事项"
/>
<button onClick={addTodo}>添加</button>
<ul>
{todos.map((todo) => (
<li key={todo.id}>
<input
type="checkbox"
checked={todo.completed}
onChange={() => toggleTodo(todo.id)}
/>
<span style={{ textDecoration: todo.completed? 'line-through' : 'none' }}>
{todo.text}
</span>
<button onClick={() => editTodo(todo.id, prompt('编辑事项:', todo.text))}>编辑</button>
<button onClick={() => deleteTodo(todo.id)}>删除</button>
</li>
))}
</ul>
</div>
);
};
export default TodoList;
我们尝试把这个代码cv到在线IDE里运行。
新建一个tsx文件,把组件的代码cv到里面
发现有一处报错,我们把鼠标移到报错上,发现有一个AI修复
我们试着让AI帮我们修复这个问题
AI给出了修复建议,并且页面展示成了类似于git merge conflict的界面,非常便于我们选择采用或接纳
我们选择接受,发现不报错了
接着在App组件中引入TodoList组件
点击上面的运行,就能在右侧看见运行结果。
测试
添加代办
编辑代办
删除代办
符合测试预期。
至此,我们已经开发完了这个小demo,是不是非常方便!
当然,我们还需要根据业务的具体情况来修改AI的代码。AI是工具,我们要学会使用它提升我们的开发效率。