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

news2024/9/20 18:27:18

关键知识点

  • 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>
     <input
       v-model="newTodoText"
       id="new-todo"
       placeholder="E.g. Feed the cat"
     >
     <button>Add</button>
   </form>
   <ul v-if="todos.length">
     <li
       is="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) return
           this.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.coloradmin.cn/o/2135671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

画图方法总结

1、画两天线段的代码 #画图 import matplotlib.pyplot as plt from matplotlib import font_manager font_path simfang.ttf # 替换为实际的字体文件路径 font_prop font_manager.FontProperties(fnamefont_path, size12) # 设置字体大小 plt.figure() plt.plot(csv_data[…

标准库、HAL库、LL库

目录 举例理解 概念理解 标准库&#xff08;Standard Peripheral Library&#xff0c;SPL&#xff09; 2. HAL库&#xff08;Hardware Abstraction Layer&#xff09; 3. LL库&#xff08;Low-Layer Library&#xff09; 总结区别 如何选择 实际应用中的结合使用 代码…

Flutter iOS混淆打包

1. Xcode配置好环境和版本号 2. Terminal输入混淆打包命令 flutter build ipa --obfuscate --split-debug-info./symbols 生成包路径&#xff1a;项目名/build/ios/archive/Runner. xcarchive 3. 将上述文件复制到Xcode下 ~/Library/Developer/Xcode/Archives 4. 打开Xcode-…

React源码学习(一):如何学习React源码

本系列源码学习&#xff0c;是基于 v16.13.1&#xff0c;v17.x与v16.x区别并不太大&#xff01; 一、如何正确的学习React源码&#xff1f; 找到Github&#xff0c;转到React仓库&#xff0c;fork / clone源码&#xff1a;React 查看Readme&#xff0c;在Documentation中有Cont…

VLAN原理学习笔记

以太网是一种基于CSMA/CD的数据网络通信技术&#xff0c;其特征是共享通信介质。当主机数目较多时会导致安全隐患、广播泛滥、性能显著下降甚至造成网络不可用。 在这种情况下出现了VLAN (Virtual Local Area Network)技术解决以上问题。 1、VLAN快速配置 Vlan:Virtual Local…

【XR】AR HUD

1. AR HUD&#xff08;head up display&#xff09;原理 目标&#xff1a; 产业链上的各大Tier1及PGU企业都在积极开发这一技术&#xff0c;许多厂家已推出LCOS样机&#xff0c;比如说水晶光电、华阳集团、瀚思通、疆程已在北京车展或去年的上海车展上展出了LCOS方案的AR-HUD样…

第一届长城杯信息安全铁人三项赛决赛 取证溯源 (复现)

前言&#xff1a; 2024铁人三项决赛应急响应 您的同事李白在运维一台部署了移动应用服务端的linux服务器时发现了异常&#xff0c;好像被黑客攻 击了。小李通过简单分析&#xff0c;发现可能是由于公司的移动应用和其服务端程序都存在安全问题导致 的。小李将当天可能与攻击相关…

(安装VMtools工具)将一个文件从主系统(windows)传送到VMware虚拟机的Linux系统中

解决问题&#xff1a;将一个文件从主系统&#xff08;windows&#xff09;传输到VMware虚拟机的AlmaLinux系统中 博主在主系统和虚拟机文件传输时发现了共享文件夹这一办法&#xff0c;发现需要安装VMtools工具&#xff0c;且网上有关VMtools的教程大多为图形化界面的操作&…

盘点那些初级软件测试面试题汇总

一、请描述如何划分缺陷与错误严重性和优先级别&#xff1f; 给软件缺陷与错误划分严重性和优先级的通用原则&#xff1a; &#xff08;1&#xff09;表示软件缺陷所造成的危害和恶劣程度。 &#xff08;2&#xff09;优先级表示修复缺陷的重要程度和次序。 严重性&#xf…

基于SpringBoot+Vue的驾校信息管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

OpenAI o1:AI领域的“草莓”革命,华人科学家贡献卓越

最近&#xff0c;科技界的热门明星“草莓”频繁出现在大家的视线中。9月11号&#xff0c;The Information报道称&#xff1a;OpenAI计划在未来两周内推出一款更智能、更昂贵、更谨慎的AI模型&#xff01;网友们对此消息持怀疑态度&#xff0c;认为类似消息屡见不鲜&#xff0c;…

使用肘部法则确定K-Means中的k值

一 肘部法则 在K-means算法中&#xff0c;对于确定K&#xff08;簇的数目&#xff09;&#xff0c;我们经常使用肘部法则。 肘部法则是一种用于确定在k均值聚类算法中使用的质心数&#xff08;k&#xff09;的技术。 在这种方法中&#xff0c;为了确定k值&#xff0c;我们连续…

springboot修改组件扫描包位置

步骤很详细&#xff0c;直接上教程 问题分析 默认情况下组件扫描包范围为启动类所在包及其子包 解决方法 我们只需要在启动类上面加个注解配置扫描范围 效果演示 温馨提示 非必要不建议修改&#xff0c;按规范创建项目结构一般不会出现这个问题

此mac无法连接Apple媒体服务,因为“”出现问题。

出现问题&#xff1a; 这是因为mac登陆过别人的appId下载过软件&#xff0c;但是没有完全退出登陆 解决 打开偏好设置&#xff0c;点击头像&#xff0c;点击媒体与已购项目&#xff0c;能看到弹框内AppleID登陆的应用&#xff0c;打开对应的那个应用&#xff0c;我这里是音…

对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用|文献速递--Transformer架构在医学影像分析中的应用

Title 题目 Adversarial EM for variational deep learning: Application to semi-supervised image quality enhancement in low-dose PET and low-dose CT 对抗性EM用于变分深度学习&#xff1a;在低剂量PET和低剂量CT中的半监督图像质量增强应用 01 文献速递介绍 医学影…

OpenAI 全新 o1 模型上线 Cursor,开发者们欢呼!

最近 OpenAI 推出了新一代 o1模型&#xff0c;现在可以在 Cursor 上使用了。这些 o1模型在处理复杂和精细的推理任务上表现出色&#xff0c;令许多开发者为之兴奋。 特别值得一提的是&#xff0c;o1-mini 模型专门为高级编程设计&#xff0c;成为了开发者们的新宠。 最开始&am…

c++类和对象(3):默认成员函数(下)

1.拷贝构造函数 如果⼀个构造函数的第⼀个参数是自身类类型的引用&#xff0c;且任何额外的参数都有默认值&#xff0c;则此构造函数也叫做拷贝构造函数&#xff0c;也就是说拷贝构造是⼀个特殊的构造函数。 c规定&#xff1a;类类型的传值传参必须用拷贝构造 1.1拷贝构造函数…

SpringBoot:Web开发(基于SpringBoot使用MyBatis-Plus+JSP开发)

目录 前期准备 构建项目&#xff08;IDEA2023.1.2&#xff0c;JDK21&#xff0c;SpringBoot3.3.3&#xff09; 添加启动器 Model准备 这里我们利用MybatisX插件生成我们所需要的实体类、数据访问层以及服务层 注意选择MyBatis-Plus3以及Lombok 然后再在service接口中定义…

Leetcode 每日一题:Course Schedule II

写在前面&#xff1a; 今天我们继续来看一道经典的图论问题&#xff0c;而这个问题可以说是跟我们一众学生的生活息息相关啊&#xff01;我们每年都有很多需要完成的必修指标&#xff0c;每一个必修指标可能会有一个或多个先修要求&#xff0c;而我们需要决定是否能将这些课全…

kAFL部署、使用与原理分析

文章目录 前言1、概述1.1、工作原理1.2、工作流程1.2.1、部署kAFL1.2.2、准备工作1.2.2.1、准备主机代理内核1.2.2.2、准备待Fuzz目标1.2.2.3、配置待Fuzz目标1.2.2.4、配置kAFL组件 1.2.3、Fuzz测试1.2.3.1、获取配置信息1.2.3.2、准备工作目录1.2.3.3、复制种子文件1.2.3.4、…