浅析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 相关文章推荐
jQuery asp.net 用json格式返回自定义对象
Apr 07 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
Javascript中数组sort和reverse用法分析
Dec 30 Javascript
JavaScript实现打开链接页面的方式汇总
Jun 02 Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
Jul 10 Javascript
React-Native做一个文本输入框组件的实现代码
Aug 10 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
jQuery实现的简单手风琴效果示例
Aug 29 jQuery
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 Javascript
使用React手写一个对话框或模态框的方法示例
Apr 25 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
Sep 02 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中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
JavaScript函数详解
2015/02/27 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Python并行分布式框架Celery详解
2018/10/15 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
俄语专业职业生涯规划
2014/02/26 职场文书
2014年德育工作总结
2014/11/20 职场文书
2016公司新年问候语
2015/11/11 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
MySQL索引失效的典型案例
2021/06/05 MySQL
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS