【发布时间】:2021-02-11 21:29:17
【问题描述】:
我有一个简单的应用程序,其中有一个用于添加任务的组件以及我想要显示所有添加的任务的主页。问题是当我添加一个新任务时,它不会显示在我渲染所有任务的模板中。我想重新使用我的 AddTasks 组件和 useTasks 组合函数来添加任务。但是它们没有出现在主页上。我做错了什么?
这里是克隆和尝试的 repo:
$ git clone https://github.com/martinszeltins/vue3-reactivity.git
$ cd vue3-reactivity
$ npm install
$ npm run serve
这是我的 App.vue
<template>
<div v-for="task in tasks">
{{ task }}
</div>
<add-task />
</template>
<script>
import AddTask from './components/AddTask.vue'
import useTasks from './composition/useTasks.js'
export default {
components: {
AddTask
},
setup() {
const { tasks } = useTasks()
return { tasks }
},
}
</script>
这里是 AddTask 组件
<template>
<button @click="addTask">
Add new task
</button>
</template>
<script>
import useTasks from '../composition/useTasks.js'
export default {
setup()
{
const { add } = useTasks()
function addTask() {
add('My new task')
}
return { addTask }
}
}
</script>
以及useTasks组合函数
import { ref } from 'vue'
export default function useTasks() {
const tasks = ref(['First task'])
function add(task) {
alert(`Adding task - ${task}`)
tasks.value.push(task)
}
return { tasks, add }
}
【问题讨论】:
标签: javascript vue.js vuejs3