当前位置: 首页 > 知识库问答 >
问题:

删除$emit为2级以上或1级以上的todo应用程序中的项目?[副本]

凌黎明
2023-03-14

我有3. vue在这里:pp.vue(默认),Todos.vue和Todoitem.vue.我按照教程从https://www.youtube.com/watch?v=Wy9q22isx3U

下面是我的TodoItem.vuecode

<template>
  <div class="todo-item" v-bind:class="{'is-complete':todoObj.completed}">
    <p>
      <input type="checkbox" v-on:change="markComplete" />
      {{todoObj.title}}
      <button @click="$emit('del-todo',todoObj.id)" class="del">x</button>
    </p>
  </div>
</template>

<script>
export default {
  name: "TodoItem",
  props: ["todoObj"], // todoObj is defined in the parent.
  methods: {
    markComplete() {
      this.todoObj.completed = !this.todoObj.completed;
    }
  }
};
</script>

<style scoped>
.todo-item {
  background: #f4f4f4;
  padding: 10px;
  border-bottom: 1px #ccc dotted;
}

.is-complete {
  text-decoration: line-through;
}

.del {
  background: #ff0000;
  color: #fff;
  border: none;
  padding: 5px 9px;
  border-radius: 50%;
  cursor: pointer;
  float: right;
}
</style>

下面是我的Todo.vuecode

<template>
  <div>
    <h1>Todo List2</h1>
    <!-- :key= and v-bind:key= are exactly the same. -->
    <!-- v-bind. Shorthand: : -->
    <div v-for="todo in ptodos" :key="todo.id">
      <!-- Define todoObj here which to be used in the child component, TodoItem -->
      <MyTodoItem v-bind:todoObj="todo" v-on:del-todo="deleteTodo" />
      <!-- del-todo is from the child. child goes up to parent and then to grandparent (App.vue) -->
    </div>
  </div>
</template>

<script>
import MyTodoItem from "./TodoItem.vue";

export default {
  name: "Todos",
  components: {
    MyTodoItem
  },
  props: ["ptodos"],

  methods: {
    deleteTodo(id) {
      this.ptodos = this.ptodos.filter(todo => todo.id !== id);
    }
  }
};
</script>

<style scoped>
</style>

下面是我的App.vuecode

<template>
  <MyToDos v-bind:ptodos="todos" />
</template>

<script>
import MyToDos from "./components/Todos";

export default {
  name: "App",
  components: { MyToDos },
  data() {
    return {
      todos: [
        {
          id: 1,
          title: "Todo One",
          completed: false
        },
        {
          id: 2,
          title: "Todo Two",
          completed: true
        },
        {
          id: 3,
          title: "Todo Three",
          completed: false
        }
      ]
    };
  }
};
</script>

<style>
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.4;
}
</style>

共有1个答案

赖淇
2023-03-14

如果你能提高一级,那就更好了。每个孩子身上都有多个道具可能是一种不好的做法,称为道具钻孔。

Vuex是避免嵌套道具的好选择。

 类似资料:
  • 我需要了解全局禁用EF Core 2中级联删除的方法。感谢您的帮助。 在EF 6. x中,我们使用以下代码来禁用和实现上的级联删除:

  • 下面是我的代码: 但当我触发它时,有时它会向我显示:关系无法更改,因为一个或多个外键属性是不可为空的。当对关系进行更改时,相关的外键属性将设置为null值。如果外键不支持空值,则必须定义新的关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。 为什么?我只是想删除一个医疗和诊所之间的关系,就是这张表: 我不能创建对象ClinicsMedicals(作为DB中表的名称),因为我不能在EF

  • 问题内容: 第一部分 在Grails应用程序中,我了解到您可以通过添加以下方式为每个域类启用二级缓存 默认情况下,仅在调用时使用二级缓存,但也可以通过添加到查询将其用于条件查询和动态查找器。 但是,我仍然不确定我是否了解查询缓存的工作原理。我最好的猜测是: 每个域类都有单独的查询缓存,例如一个用于Book,另一个用于Author 在执行类似的查询之前,将根据域类(Author),查询(findBy

  • ; GetParent ; 输入,堆栈顶部 (例如 C:\Program Files\Poop) ; 输出,堆栈顶部 (替换,例如 C:\Program Files) ; 不改变其它变量值。 ; ; 用法: ; Push "C:\Program Files\Directory\Whatever" ; Call GetParent ; Pop $R0

  • 本文向大家介绍Java程序要删除字符串中除“ 1”和“ 2”以外的所有数字?,包括了Java程序要删除字符串中除“ 1”和“ 2”以外的所有数字?的使用技巧和注意事项,需要的朋友参考一下 正则表达式“ (?<!\\ d) digit (?!\\ d) ”与指定的数字匹配。 replaceAll()方法接受两个字符串:正则表达式模式和替换字符串,并将模式替换为指定的字符串。 因此,要删除字符串中除1

  • 如何使用多个使用相同库的应用程序创建gradle根项目。我希望以包含以下内容的tar和zip文件结束: 导致错误