【demo】使用React+Webpackt做一个简单的todolist

这篇博客介绍如何利用React和Webpack创建一个简单的TodoList应用。内容包括项目初始化、依赖安装、Webpack配置,以及React组件化思想的运用。通过组件化设计,实现了数据在父组件和子组件之间的传递,子组件通过props获取数据并执行增删操作,所有状态变更由React自动更新UI。
摘要由CSDN通过智能技术生成

使用React实现一个简单的todolist,实现基本的增删功能

GitHub:https://github.com/heyue-99/todolist


创建项目

创建的 todo主要采用 node包的方式,使用 webpack打包

初始化项目并创建一些基础文件

初始化项目之后,就需要安装所需要的库及其依赖。npm安装方式可以为开发环境或生产选择所安装的依赖。

安装完所需要的依赖之后,配置webpack。

webpack.config.js:

var path = require("path");
module.exports = {
  entry: {
    app: ["./app/app.js"]
  },
  output: {
    path: path.resolve("./build"),
    filename: "main.js"
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['env','react']
          }
        }
      },
      {
        test: /\.css$/,
        use: [ 'style-loader', 'css-loader' ]
      },
      {
        test: /\.less$/,
        use: [{
                loader: "style-loader" // create
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个使用React和TypeScript完成的TodoList示例: 首先,创建一个React组件:TodoList.tsx ```tsx import React, { useState } from "react"; interface TodoItem { id: number; content: string; completed: boolean; } const TodoList = () => { const [todos, setTodos] = useState<TodoItem[]>([]); const [inputValue, setInputValue] = useState(""); const handleAddTodo = () => { if (inputValue.trim() === "") return; const newTodo: TodoItem = { id: todos.length, content: inputValue, completed: false }; setTodos([...todos, newTodo]); setInputValue(""); }; const handleToggleTodo = (id: number) => { const updatedTodos = todos.map(todo => todo.id === id ? { ...todo, completed: !todo.completed } : todo ); setTodos(updatedTodos); }; const handleDeleteTodo = (id: number) => { const updatedTodos = todos.filter(todo => todo.id !== id); setTodos(updatedTodos); }; return ( <div> <h1>Todo List</h1> <div> <input type="text" value={inputValue} onChange={e => setInputValue(e.target.value)} /> <button onClick={handleAddTodo}>Add</button> </div> <ul> {todos.map(todo => ( <li key={todo.id} style={{ textDecoration: todo.completed ? "line-through" : "none" }} > {todo.content} <button onClick={() => handleToggleTodo(todo.id)}> {todo.completed ? "Uncomplete" : "Complete"} </button> <button onClick={() => handleDeleteTodo(todo.id)}>Delete</button> </li> ))} </ul> </div> ); }; export default TodoList; ``` 在这个组件中,我们定义了一个状态todos来存储所有的待办事项,以及一个状态inputValue来存储用户输入的新待办事项的内容。我们通过useState Hook来定义这些状态。 我们还定义了三个处理函数handleAddTodo、handleToggleTodo和handleDeleteTodo来添加、切换完成状态和删除待办事项。我们通过map函数来遍历todos数组,以便将每个待办事项渲染为一个li元素。 最后,我们导出TodoList组件。 接下来,在App.tsx中使用TodoList组件: ```tsx import React from "react"; import TodoList from "./TodoList"; const App = () => { return ( <div> <TodoList /> </div> ); }; export default App; ``` 现在,我们就可以在浏览器中查看TodoList应用程序了。 注:在使用前需要先安装React和TypeScript的依赖。在终端中执行以下命令: ```sh npm install react react-dom npm install --save-dev typescript @types/react @types/react-dom ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值