返回

Vite2 + Vue2 + TSX + Pinia 开发 Todo List 实战总结分享

前端

前言

在前端开发领域,Vue.js 作为一款流行的框架,受到了广大开发者的青睐。随着 Vue3 的发布,许多开发者开始着手将项目从 Vue2 迁移到 Vue3。然而,由于 Vue2 依然拥有庞大的用户群体,因此对于那些想要继续使用 Vue2 的开发者来说,如何将 Vue2 集成到 Vite2 中就成为了一个重要的问题。

项目搭建

首先,我们需要搭建项目。

# 安装 Vite
npm install -g vite

# 创建项目
mkdir todo-list
cd todo-list

# 初始化项目
vite init vue2

# 安装依赖
npm install

开发 Todo List

接下来,我们可以开始开发 Todo List 了。

1. 创建组件

首先,我们需要创建 Todo List 的组件。

# 创建 TodoList.vue 文件
touch src/components/TodoList.vue

# TodoList.vue 内容如下:
<template>
  <div class="todo-list">
    <ul>
      <li v-for="todo in todos" :key="todo.id">
        {{ todo.text }}
      </li>
    </ul>
    <input type="text" v-model="newTodoText" @keyup.enter="addTodo">
  </div>
</template>

<script>
import { ref } from 'vue'
import { useStore } from 'pinia'

export default {
  setup() {
    const todos = ref([])
    const newTodoText = ref('')
    const store = useStore()

    const addTodo = () => {
      if (newTodoText.value) {
        store.dispatch('addTodo', { text: newTodoText.value })
        newTodoText.value = ''
      }
    }

    return {
      todos,
      newTodoText,
      addTodo
    }
  }
}
</script>

<style>
.todo-list {
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.todo-list ul {
  list-style-type: none;
  padding: 0;
}

.todo-list li {
  padding: 10px;
  border-bottom: 1px solid #ccc;
}

.todo-list input {
  width: 100%;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
}
</style>

2. 创建 Store

然后,我们需要创建 Store 来管理 Todo List 的数据。

# 创建 store/index.js 文件
touch src/store/index.js

# store/index.js 内容如下:
import { defineStore } from 'pinia'

export const useTodoStore = defineStore('todo', {
  state: () => ({
    todos: []
  }),
  getters: {
    getTodos: (state) => state.todos
  },
  actions: {
    addTodo({ text }) {
      this.todos.push({ id: Date.now(), text })
    }
  }
})

3. 在 App.vue 中使用组件和 Store

最后,我们需要在 App.vue 中使用组件和 Store。

# App.vue 内容如下:
<template>
  <div id="app">
    <h1>Todo List</h1>
    <TodoList />
  </div>
</template>

<script>
import TodoList from './components/TodoList.vue'
import { useTodoStore } from './store/index.js'

export default {
  components: {
    TodoList
  },
  setup() {
    const store = useTodoStore()
    return {
      store
    }
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', 'Helvetica', 'Arial', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

总结

通过以上步骤,我们就可以完成 Todo List 的开发了。在开发过程中,我们主要使用了 Vite2、Vue2、TSX 和 Pinia 这几个框架。Vite2 是一个非常流行的前端构建工具,它可以帮助我们快速搭建项目并提供热更新功能。Vue2 是一个渐进式的 JavaScript 框架,它可以帮助我们轻松构建用户界面。TSX 是 TypeScript 的一种语法扩展,它可以帮助我们编写更健壮的代码。Pinia 是一个状态管理库,它可以帮助我们管理应用程序中的状态。

希望这篇文章对大家有所帮助。如果你有任何问题,欢迎在评论区留言。