第十篇:使用React实现待办事项列表 | 豆包MarsCode AI 刷题

121 阅读2分钟

第十篇:使用React实现待办事项列表 | 豆包MarsCode AI 刷题

在青训营 X 豆包 MarsCode 技术训练营中,我实践了使用React实现一个简单的待办事项列表应用,重点学习了React的组件化开发和状态管理。

项目概述

待办事项列表是一个经典的入门项目,通过这个项目,我练习了React的基本概念,包括组件、状态和事件处理。

实现步骤

  1. 创建组件:将应用分为输入组件、列表组件和单项组件,分别负责不同的功能。
  2. 状态管理:使用React的useState钩子来管理待办事项的状态。
  3. 事件处理:实现添加、编辑和删除待办事项的功能。

javascript

function TodoApp() {
  const [todos, setTodos] = useState([]);
  const [inputValue, setInputValue] = useState("");

  const addTodo = () => {
    setTodos([...todos, { text: inputValue, completed: false }]);
    setInputValue("");
  };

  return (
    <div>
      <input
        value={inputValue}
        onChange={(e) => setInputValue(e.target.value)}
      />
      <button onClick={addTodo}>Add</button>
      <TodoList todos={todos} />
    </div>
  );
}

学习收获

通过这个项目,我加深了对React组件化开发的理解,并掌握了基本的状态管理技巧。项目的实现让我对React有了更直观的认识。


第十一篇:Go语言性能优化实践 | 豆包MarsCode AI 刷题

在青训营 X 豆包 MarsCode 技术训练营中,我选择了优化一个已有的Go程序,重点在于提高其性能并减少资源占用。

项目背景

我选择了一个处理大量数据的Go程序,原始版本在处理效率上存在不足。通过分析,我发现主要瓶颈在于大量的I/O操作和不必要的内存分配。

优化措施

  1. 并发处理:利用Go的goroutine将I/O操作并行化,显著提高了处理速度。
  2. 内存管理:通过使用sync.Pool复用对象,减少了内存分配和垃圾回收的开销。
  3. 缓存机制:引入缓存机制,避免重复计算和I/O操作。

go

package main

import (
    "sync"
)

var pool = sync.Pool{
    New: func() interface{} {
        return make([]byte, 1024)
    },
}

func process(data []byte) {
    // 处理数据
}

func main() {
    data := pool.Get().([]byte)
    defer pool.Put(data)

    // 读取数据到data
    process(data)
}

优化结果

优化后,程序的执行时间减少了约50%,内存使用也显著降低。这次优化实践让我更深刻地理解了Go语言的并发特性和内存管理。Git是一个分布式版本控制系统,掌握其基本操作是团队协作的基础。在学习过程中,我重点掌握了以下操作:

  1. 分支管理:使用git branchgit checkout管理项目的不同开发分支。
  2. 合并与冲突解决:通过git merge合并分支,并学习如何解决合并冲突。
  3. 提交历史管理:使用git log查看提交历史,使用git rebase整理提交记录。