06_列表渲染_1

2023-11-08

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>06_列表渲染</title>
</head>
<body>

<!--
1. 列表显示
  数组: v-for / index
  对象: v-for / key
2. 列表的更新显示
  删除item
  替换item
-->

<div id="demo">
  <h2>测试: v-for 遍历数组</h2>
  <ul>
    <li v-for="(p, index) in persons" :key="index">
      {{index}}--{{p.name}}--{{p.age}}
      --<button @click="deleteP(index)">删除</button>
      --<button @click="updateP(index, {name:'Cat', age: 16})">更新</button>
    </li>
  </ul>
  <button @click="addP({name: 'xfzhang', age: 18})">添加</button>

  <h2>测试: v-for 遍历对象</h2>

  <ul>
    <li v-for="(item, key) in persons[1]" :key="key">{{key}}={{item}}</li>
  </ul>

</div>

<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
  new Vue({
    el: '#demo',
    data: {
      persons: [
        {name: 'Tom', age:18},
        {name: 'Jack', age:17},
        {name: 'Bob', age:19},
        {name: 'Mary', age:16}
      ]
    },

    methods: {
      deleteP (index) {
        /*
          此处的splice方法不是原生JS中的splice方法
          试想,如果此处的splice方法是原生JS中的splice方法
          那么,Vue本身只是监视了Persons的改变,没有监视数组内部数据的改变
          所以页面应该不会发生变化

          因此,此处的splice是对原生方法的包装(重写),内部要依次完成两件事
          1、调用原生的splice方法
          2、更新界面

          因此,Vue重写了数组中的一系列改变数组内部数据的方法(先调用原生,然后更新界面)--->数组内部改变,界面自动变化
        */
        this.persons.splice(index, 1)
      },

      updateP (index, newP) {
        console.log('updateP', index, newP)
        /*
          下面这个操作是不行的
          this.persons[index] = newP
          因为并没有改变Persons本身
          数组内部发生了变化,但并没有调用变异方法,vue不会更新界面
          Vue本身只是监视了Persons的改变,没有监视数组内部数据的改变
         */
        // this.persons[index] = newP
        this.persons.splice(index, 1, newP)
        // this.persons = []
      },

      addP (newP) {
        this.persons.push(newP)
      }
    }
  })
</script>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

06_列表渲染_1 的相关文章

随机推荐

  • ShapeDTW代码运行问题记录与解决方法

    下载shapeDTW的GitHub代码运行 测试 源码是MATLAB写的 需要保证电脑安装MATLAB 然后根据readme txt文件提示 第一步下载UCR数据集 http www cs ucr edu eamonn time serie
  • 实现哈夫曼树和哈夫曼编码

    原谅小编做了只鸽子 鸽了这么久 哈夫曼树在日常生活中可以用于文件的压缩 所以是我们程序员必不可少的基本功 下面跟着小编我一起来实现哈夫曼树和编码吧 一 哈夫曼树的实现 一 实现原理 哈夫曼树是一种特殊的二叉树 我们先假设有一个森林 里面是一
  • 捡硬币问题 动态规划算法C语言实现

    问题描述 现有n个硬币按顺序依次排列在你面前 它们的面值可以看作一个数组coins 5 1 2 10 6 2 请在此中选取若干个硬币 使得所取硬币面值总和最大 捡取个数不限 但相邻的硬币不能捡取 请设计相应算法 要求能够输出累加值和选取的硬
  • React的生命周期 和 页面优化

    React的生命周期 和 页面优化 先上React的生命周期图 页面优化问题在 shouldComponentUpdate 函数那里写的 有颜色备注 React声明周期的四个大阶段 Initialization 初始化阶段 Mounting
  • springmvc上传文件的三种方式

    方式一 通过流的方式上传文件 RequestParam file 将name file控件得到的文件封装成CommonsMultipartFile 对象 RequestMapping fileUpload public String fil
  • 如何在csdn转载文章

    Question 如何在CSDN中快速转载文章 Solution 1 在CSDN中找到想要转载的文章 右击点击 检查 或者快捷键F12 出现以下界面 图下图右侧所示 2 按住Ctrl F快捷键 在弹出的搜索框中寻找 article cont
  • 整理注解使用

    常用注解 三个标注注解 Override 检查该方法是否是重写方法 如果发现其父类 或者是引用的接口中并没有该方法时 会报编译错误 Deprecated 标记过时方法 如果使用该方法 会报编译警告 SuppressWarnings 指示编译
  • Mybatis执行流程剖析

    这里写自定义目录标题 一 流程 从项目中看流程 一 流程 Resource获取加载全局配置文件 如图 引入properties文件和连接数据库等配置都在xml中 实例化SqlSessionFactoryBuider构造器 SqlSessio
  • 解决Oracle数据库ORA-01157: cannot identify/lock data file 10 - see DBWR trace file ORA-01110: data file 1

    解决Oracle数据库启动报错ORA 01157 cannot identify lock data file 10 see DBWR trace file ORA 01110 data file 10 u01 app oracle ora
  • 蓝桥杯-时间显示(java)

    问题描述 小蓝要和朋友合作开发一个时间显示的网站 在服务器上 朋友已经获取了当前的时间 用一个整数表示 值为从1970年1月1日O0 00 00到当前时刻经过的毫秒数 现在 小蓝要在客户端显示出这个时间 小蓝不用显示出年月日 只需要显示出时
  • es ik 词库添加词语_五、IK自定义词库及远程热更新

    IKAnalyzer cfg xml为IK分词器的配置文件 一 IKAnalyzer cfg xml文件分析properties SYSTEM http java sun com dtd properties dtd gt IK Analy
  • 本周参加两个SAP项目面试后的感想

    本周参加两个SAP项目面试后的感想 本周二和周四 应约参加了2个不同项目的电话面试 感触挺多的 1 行业经验在很多项目选人的时候具有关键性的决定作用 A项目 是一个快消品行业的大项目 客户是世界跨国巨头 听对方介绍起来该项目规模庞大 极其复
  • JS多个对象添加到一个对象中

    var obj1 qq 10 var obj2 mm 2 nn 3 var obj3 xx 1 yy 5 obj1 field1 obj2 obj1 field2 obj3 console log obj1 转载于 https www cn
  • linux系统查看文件大小及使用空间大小

    1 查看 data test文件夹下所有文件大小之和命令 du h max depth 1 data test 2 查看 data test文件夹下所有文件大小明细 每个文件大小 命令 du h max depth 1 data test
  • 四路服务器选型项目,四路服务器详细

    四路服务器详细 内容精选 换一换 在待分析的服务器上安装节点 Web服务器 即安装鲲鹏性能分析工具的服务器 默认安装了节点 如果待分析的服务器与安装工具的服务器是同一个 请跳过该章节 已成功登录系统性能分析 待添加节点的服务器已配置操作系统
  • 17款最佳的代码审查工具

    好的代码审查器可以大大地帮助程序员提高代码质量 减少错误几率 虽然现在市场上有许多可用的代码审查工具 但如何挑选也是一个艰巨的任务 在咨询过有关专家的建议和意见之后 我们罗列出了以下17款最佳的代码审查工具 1 CodeStriker Co
  • Vue.js 条件渲染全解析

    注意标题是条件渲染而不是条件判断 Vue给v if这类条件判断属性取名叫条件渲染 这些属性的目的是判断要不要渲染这些元素 而不仅仅是所谓的判断 是否渲染才是最主要的功能 v if的使用 例如下面的代码 span里面可以显示message的信
  • 关于 Diffie-Hellman 组

    Diffie Hellman DH 组确定了在密钥交换进程中使用的密钥的强度 组的编号越大安全性就越高 但是也就需要更多的时间来计算密钥 WatchGuard 设备支持 Diffie Hellman 组 1 2 和 5 DH 组 1 768
  • PAT C 语言入门题目-7-60 删除重复字符 (20 分)

    7 60 删除重复字符 20 分 本题要求编写程序 将给定字符串去掉重复的字符后 按照字符ASCII码顺序从小到大排序后输出 输入格式 输入是一个以回车结束的非空字符串 少于80个字符 输出格式 输出去重排序后的结果字符串 输入样例 ad2
  • 06_列表渲染_1

    div h2 测试 v for 遍历数组 h2 ul li index p name li ul div