浅析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实现动态增加文件域表单
Feb 12 Javascript
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
extJs 下拉框联动实现代码
Apr 09 Javascript
js 未结束的字符串常量错误解决方法
Jun 13 Javascript
JavaScript OOP面向对象介绍
Dec 02 Javascript
5个JavaScript经典面试题
Oct 13 Javascript
JavaScript极简入门教程(二):对象和函数
Oct 25 Javascript
js实现String.Fomat的实例代码
Sep 02 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
vue项目引入字体.ttf的方法
Sep 28 Javascript
跨域解决之JSONP和CORS的详细介绍
Nov 21 Javascript
发布一款npm包帮助理解npm的使用
Jan 03 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制作万年历
2015/01/07 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
Python中itertools模块用法详解
2014/09/25 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
中国高端家电购物商城:顺电
2018/03/04 全球购物
联想英国官网:Lenovo英国
2019/07/17 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
报关专员求职信范文
2014/02/22 职场文书
单位委托书范本
2014/04/04 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python