浅析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 建设银行登陆键盘
Jun 10 Javascript
JavaScript 应用技巧集合[推荐]
Aug 30 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
Javascript 浮点运算的问题分析与解决方法
Aug 27 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
Sep 29 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
利用浏览器全屏api实现js全屏
Jan 16 Javascript
简单掌握JavaScript中const声明常量与变量的用法
May 21 Javascript
vue中echarts3.0自适应的方法
Feb 26 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
解决layui 表单元素radio不显示渲染的问题
Sep 04 Javascript
layui-table对返回的数据进行转变显示的实例
Sep 04 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
7个超级实用的PHP代码片段
2011/07/11 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
20个最新的jQuery插件
2012/01/13 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
JS常见算法详解
2017/02/28 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
javascript异步编程的六种方式总结
2019/05/17 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
django中模板的html自动转意方法
2018/05/27 Python
Django的models模型的具体使用
2019/07/15 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
详解python UDP 编程
2020/08/24 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
什么是反射
2012/03/17 面试题
聚美优品陈欧广告词
2014/03/14 职场文书
见习报告格式要求
2014/11/04 职场文书
2015年纪委工作总结
2015/05/13 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
什么是SOLID
2022/03/24 Javascript
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL