浅析vue.js数组的变异方法


Posted in Javascript onJune 30, 2018

Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下:

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()

都有什么功能?动手试验了一下:

<body>
  <div id="app">
   <div>
    push方法:
    <input type="text" v-model="text" @keyup.enter="methodByPush">
    <input type="button" value="测试功能" @click="methodByPush">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
    <div>
    pop方法:
    <input type="button" value="测试功能" @click="methodByPop">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   <div>
    shift方法:
    <input type="button" value="测试功能" @click="methodByShift">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
    <div>
    unshift方法:
    <input type="text" v-model="text" @keyup.enter="methodByUnshift">
    <input type="button" value="测试功能" @click="methodByUnshift">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   <div>
    splice方法:
    <input type="button" value="测试功能" @click="methodBySplice">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   <div>
    sort方法:
    <input type="button" value="测试功能" @click="methodBySort">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div> 
   <div>
   reverse方法:
    <input type="button" value="测试功能" @click="methodByReverse">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   result显示的地方:<br>
   <span v-text="result"></span>
  </div>
<script>
  var vm = new Vue({
   el: '#app',
   data: {
    items: [],
    text: '',
    result: ''
   },
   methods: {
    methodByPush: function () {
     this.result = this.items.push(this.text)
     this.text = ''
    },
    methodByPop: function () {
     this.result = ''
     this.result = this.items.pop()
    },
    methodByShift: function () {
     this.result = ''
     this.result = this.items.shift()
    },
    methodByUnshift: function () {
     this.result = ''
     this.result = this.items.unshift(this.text)
     this.text = ''
    },
    methodBySplice: function () {
     this.result = ''
     this.result = this.items.splice(2,1,'yovan')
    },
    methodBySort: function () {
     this.result = ''
     this.result = this.items.sort()
    },
    methodByReverse: function () {
     this.result = ''
     this.result = this.items.reverse()
     alert(this.result)
    }
   }
  })
</script>

得到下面的结论:

push() 往数组最后面添加一个元素,成功返回当前数组的长度

pop() 删除数组的最后一个元素,成功返回删除元素的值

shift() 删除数组的第一个元素,成功返回删除元素的值

unshift() 往数组最前面添加一个元素,成功返回当前数组的长度

splice() 有三个参数,第一个是想要删除的元素的下标(必选),第二个是想要删除的个数(必选),第三个是删除
后想要在原位置替换的值(可选)

sort() 使数组按照字符编码默认从小到大排序,成功返回排序后的数组

reverse() 将数组倒序,成功返回倒序后的数组

后来发现这些应该都是javascript本来的方法吧?以前javascript没学好,正好趁这次把这些方法的用法都给捡回来!

Javascript 相关文章推荐
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
Feb 25 Javascript
JavaScript中判断数据类型的方法总结
May 24 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
Nov 26 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
Jan 30 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 jQuery
Vue 让元素抖动/摆动起来的实现代码
May 31 Javascript
详解vue添加删除元素的方法
Jun 30 #Javascript
vue.js删除列表中的一行
Jun 30 #Javascript
vue v-model动态生成详解
Jun 30 #Javascript
vue-router+nginx 非根路径配置方法
Jun 30 #Javascript
Vue项目中添加锁屏功能实现思路
Jun 29 #Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 #Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 #Javascript
You might like
PHP 反向排序和随机排序代码
2010/06/30 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
php无序树实现方法
2015/07/28 PHP
php轻松实现文件上传功能
2016/03/03 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
react-router JS 控制路由跳转实例
2017/06/15 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python上下文管理器和with块详解
2017/09/09 Python
python简单实现操作Mysql数据库
2018/01/29 Python
python实现聚类算法原理
2018/02/12 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
酒店销售主管岗位职责
2014/01/04 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
产品销售计划书
2014/05/04 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技