vue2基础系列教程之todo的实现及面试高频问题

devtools/2024/11/15 0:40:22/

关键知识点

  • v2里面,当在同一个元素或组件上同时使用v-for和v-if,v-for的权限高于v-if

  • v-show和v-if的区别主要有

    • v-if是惰性的,v-show是及时的
    • v-if值为false时,不会生成dom,v-show不管值是true或false,都会生成dom,修改的是dom的display属性
    • v-if用在组件上,会触发组件的生命周期的重新渲染,v-show不会
    • v-if可以用在template上,v-show不行,只能用在元素或组件上
  • v-for迭代的数据可以是array,也可以是object,如果是object,则内部使用的Object.keys进行的迭代。

  • 在迭代ul中元素时,我们要注意一点,由于ul内部只能显示li标签,所以我们在封装子组件时要注意必须如下处理,使用is='组件名字',避免不同的浏览器渲染不同,导致出现bug
    -在这里插入图片描述

实现效果

请添加图片描述

<div id="app">...<todo-form :todos="todos"/>
</div>

form表单的封装

const form = `<div id="todo-list-example"><form v-on:submit.prevent="addNewTodo"><label for="new-todo">Add a todo</label><inputv-model="newTodoText"id="new-todo"placeholder="E.g. Feed the cat"><button>Add</button></form><ul v-if="todos.length"><liis="todo-item"v-for="(todo, index) in todos"v-bind:key="todo.id"v-bind:title="todo.title"v-on:remove="todos.splice(index, 1)"></li></ul><p v-else>No todos left!</p>
</div>`
Vue.component('todo-form', {template: form,   //就是html字符串,类似于react里面jsx的写法data(){return {newTodoText:'',id:0}},props:['todos'],methods: {addNewTodo(){if(!this.newTodoText) returnthis.todos.push({id:this.id++,title:this.newTodoText})this.newTodoText=''}}
})

item封装实现

Vue.component('todo-item', {props: ['title'],template: `<li>{{ title }} <button v-on:click="$emit('remove')">Remove</button>`
})

根实例的实现

const vm = new Vue({el: '#app',data: {object: {title: 'How to do lists in Vue',author: 'Jane Doe',publishedAt: '2016-04-10'},users:[{id:'1',name:"张三"},{id:'2',name:"李四"}],todos:[]},created() {},methods: {}
})

http://www.ppmy.cn/devtools/114290.html

相关文章

『功能项目』调整Boss技能bug【51】

我们打开上一篇50切换职业技能面板的项目&#xff0c; 本章要做的事情是调整主角在进入boss01攻击范围内生成的boss技能特效在主角离开时有时会不消失的bug 修改脚本&#xff1a;BossOpt.cs 另外修应该一个冗余脚本&#xff1a;PlayerOpt.cs 运行项目 - 主角在进入boss01攻击范…

深入 mysql,掌握一对一、一对多、多对多表设计、查询及级联操作

数据库表的基本概念与关系 数据库通常包含多个表&#xff0c;每个表存储特定类型的信息。例如&#xff1a; 学生表&#xff1a;存储学生信息。老师表&#xff1a;存储老师信息。班级表&#xff1a;存储班级信息。 这些表通过各种关系连接&#xff0c;形成一个结构化的数据管…

服务器管理:从零开始的服务器安装与配置指南

在现代IT环境中&#xff0c;服务器的安装和配置是每个运维工程师必须掌握的基本技能。本文将详细介绍如何从零开始安装和配置一台服务器&#xff0c;确保内容通俗易懂&#xff0c;并配以代码示例和必要的图片说明。 一、准备工作 在开始安装服务器之前&#xff0c;需要准备以…

网络协议习题第一章

习题 根据IP地址的格式计算,最多有多少个A类、B类和C类网络号 A类网中&#xff0c;网络号占7个bit, 则允许指派的网络数为2^7128&#xff0c;但是要除去0和127的情况&#xff0c;所以能用的最大网络数是126&#xff08;1~ 126&#xff09;。B类网中&#xff0c;网络号占14个b…

《程序猿之设计模式实战 · 池化思想》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【题解】CF2009G1

前言 只会做G1 ,但尽量做到最好&#xff0c;除了一开始的排序的O(nlogn)&#xff0c;后续处理都是O(n)。可能会对G2和G3有一点点用处。 翻译 原题链接CF2009G1 思路 直接处理等差数列不方便&#xff0c;但这个等差数列性质特殊&#xff0c;即公差为1。所以在一个等差数列…

干货:分享6款ai论文写作助手,一键生成原创论文(步骤+工具)

写一篇论文是一个复杂的过程&#xff0c;涉及多个步骤&#xff0c;包括选题、研究、撰写、编辑和校对。AI可以在其中的一些步骤中提供帮助&#xff0c;但最终的论文还是需要人类作者的深入思考和创造性输入。以下是六款值得推荐的AI论文写作助手&#xff0c;其中特别推荐千笔-A…

一个有个性的使用工具thefuck@Ubuntu

这个工具名字可能有些粗鄙&#xff0c;不过真的有让人眼前一亮的功能。 当用户输入错误的命令时&#xff0c;TheFuck会根据上下文自动推测并给出正确的命令建议。 安装 apt update apt search thefuck apt install thefuck 使用 在错误命令下面直接输入thefuck即可。 不过…