vue更新数组和对象

https://cn.vuejs.org/v2/guide/list.html#数组更新检测

更改数组对象

let items=this.formValidate.items;
items.map((item,index)=>{if(item.id===this.currentRowId){item=Object.assign({},item,{subject:subjectVal})this.$set(this.formValidate.items, index, item)}
})复制代码

问题汇总

https://juejin.im/post/59fa9257f265da43062a1b0e

修改hosts

C:\Windows\System32\drivers\etc\hosts(可将文件移到其他地方修改)

css技巧

https://github.com/jawil/blog/issues/29

store有多个类型

[types.unPayTypes.SetCopyDetail](state,newState){let type=newState.type;state.unPayCopyDetail=Object.assign({},state.unPayCopyDetail,{[type]:newState});
},复制代码
[types.unPayTypes.GetCopyDetailAsync](dispatch,payload){let promise=getCopyDetail(payload.uppIds);new PromiseAction().commit(promise,item=>{item.type=payload.type;dispatch.commit(types.unPayTypes.SetCopyDetail,item);});
},复制代码

promise async
http://cnodejs.org/topic/5640b80d3a6aa72c5e0030b6

es6的promise和async函数

缓存代理

// 处理计算的函数: 求数组中元素的和
const sum = (list) => list.reduce((v, i) => v + i, 0)// 代理对象
const proxySum = (function () {// 缓存对象var cache = {}return function () {// 已缓存的标识符let flag = Array.prototype.join.call(arguments, '-')if (flag in cache) {// 返回缓存console.log('返回缓存数据')return cache[flag]}console.log('第一次计算')return cache[flag] = sum.apply(this, arguments)}
})()console.log(proxySum([1,2,3,4,5,6,7,8,9,10])) // 第一次计算 55
console.log(proxySum([1,2,3,4,5,6,7,8,9,10])) // 返回缓存数据 55复制代码

图片懒加载

window.onload = function () {// 图片懒加载函数const myImage = (function (src) {let imgNode = document.createElement('img')document.body.appendChild(imgNode)return {setSrc (src) {imgNode.src = src}}})()// 代理对象const proxyImage = (function () {const img = new Image();img.onload = function () {// 加载真正的图片myImage.setSrc(this.src)}return {set (url) {myImage.setSrc('./1.jpeg') // 本地的loading图片img.src = url}}})()setTimeout(() => {proxyImage.set('https://publish-pic-cpu.baidu.com/4d09f82c-db73-468c-8e5f-9656876891f2.jpeg@f_webp,q_90,w_230')}, 5000)}复制代码

单例模式

https://github.com/1657413883/The-Road-of-FE/blob/master/docs/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F.md

class Person {constructor (name) {this.name = name}sayName () {console.log(this.name)}
}let getSingle =  (function () {let person = nullreturn function (name) {console.log(person)return person || (person = new Person(name))}
})()const p1 = getSingle('kobe')
p1.sayName() // 'kobe'const p2 = getSingle('kobe2')
p2.sayName() // 'kobe'复制代码

迭代器

const createIteraor = list => {let index = 0return {next: () => {return index < list.length ? {value: list[index++], done: false} : {value: undefined, done: true}}}
}let i = createIteraor([1,2,3])
console.log(i.next()) // { value: 1, done: false }
console.log(i.next()) // { value: 2, done: false }
console.log(i.next()) // { value: 3, done: false }
console.log(i.next()) // { value: undefined, done: true }复制代码

vscode打开多窗口

ctrl+shift+n

jquery promise

$.when($.ajax("..."), $.ajax("..."))
 .done(function(){ alert("Success"); })
 .fail(function(){ alert("Error"); });

图片上传

<link rel="stylesheet" type="text/css" href="js/file-upload/webuploader.css">
<script src="js/jquery-3.0.0.min.js"></script>
<script src="js/file-upload/webuploader.js"></script>复制代码
var uploader = WebUploader.create({auto: true,swf: '/file-upload/Uploader.swf',server: 'https://fileupload.sellercube.com/api/upload',pick: '#filePicker',accept: {title: 'Images',extensions: 'gif,jpg,jpeg,bmp,png',mimeTypes: 'image/*'}})uploader.on( 'fileQueued', function( file ) {var $li = $('<div id="' + file.id + '" class="file-item thumbnail">' +'<span class="delete-bar"><i class="delete"></i></span>'+'<img>' +//'<div class="info">' + file.name + '</div>' +'</div>'),$img = $li.find('img');$('#fileList').append( $li );uploader.makeThumb( file, function( error, src ) {if ( error ) {$img.replaceWith('<span>不能预览</span>');return;}$img.attr( 'src', src );}, 100, 100 );});// 文件上传过程中创建进度条实时显示。uploader.on( 'uploadProgress', function( file, percentage ) {var $li = $( '#'+file.id ),$percent = $li.find('.progress span');// 避免重复创建if ( !$percent.length ) {$percent = $('<p class="progress"><span></span></p>').appendTo( $li ).find('span');}$percent.css( 'width', percentage * 100 + '%' );});// 文件上传成功,给item添加成功class, 用样式标记上传成功。uploader.on( 'uploadSuccess', function( file ,response) {$( '#'+file.id ).addClass('upload-state-done').attr('data-file',response.Data[0]);});// 文件上传失败,显示上传出错。uploader.on( 'uploadError', function( file ) {var $li = $( '#'+file.id ),$error = $li.find('div.error');// 避免重复创建if ( !$error.length ) {$error = $('<div class="error"></div>').appendTo( $li );}$error.text('上传失败');});// 完成上传完了,成功或者失败,先删除进度条。uploader.on( 'uploadComplete', function( file ) {$( '#'+file.id ).find('.progress').remove();});复制代码

vue更新数组和对象相关推荐

  1. Vue更新数组和对象的方法

    1.更新数组中元素值:vue.set(this.对象,下标,新值) 由于 JavaScript 的限制,利用索引直接修改数组元素时,Vue 不能检测数组的变动: 正确的方法: Vue.set(vm.i ...

  2. vue更新数组时触发视图更新的方法

    参考原文: vue更新数组时触发视图更新的方法 - 大橙橙 - 博客园 vue数组对象修改触发视图更新 - 看风景就 - 博客园 直接修改数组元素是无法触发视图更新的,如 this.array[0] ...

  3. vue 加载页面时触发时间_5.6 vue更新数组时触发视图更新的方法,熟记JavaScript原生方法...

    问题:vue更新数组时触发视图更新的方法 变异方法: Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新.什么是变异方法呢?简单理解就是改变了原来的数组,可能包括数组长度length,或者 ...

  4. vue使用js遍历数组和对象

    前言 在vue中,遍历数组和对象的方式略有不同,不能完全以数组或对象的遍历方式给对方使用并获取数据.为了记录以及以后方便查看,现在对其进行整理. 数组遍历 以数组 array = [1,2,3,4,5 ...

  5. vue修改代码同步页面_vue修改数组中对象属性值页面不同步更新渲染问题处理

    之前在操作一个接口的时候,由于数据结构比较特殊,vue数组中嵌套了更深的对象,并且在页面操作的过程中对对象属性做了增加.之后蛋疼的发现页面并没有同步渲染. 问题原因: 由于javascript的限制, ...

  6. vue 对象里面放数组刷新问题_Vue 数组和对象更新,但是页面没有刷新的解决方式...

    在使用数组的时候,数组内部数据发生改变,但是与数组绑定的页面的数据却没有发生变化. {{item.name}} data () { return { msg: 'Welcome to Your Vue ...

  7. js更新数组对象_7 种Vue 数据已更新而页面没有更新的情况及深化总结(收藏)

    作者:前端1943 链接:https://segmentfault.com/a/1190000022772025 如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做 ...

  8. vue数组双向绑定问题(数组更新检测、对象添加移除属性)

    例子:三个列表数字首次渲染依次为100,200,300,点击对应的后面的按钮,要实现数字乘十,此时使用 this.arr[index]=this.arr[index]*10;进行更改的方式不起作用,改 ...

  9. vue传递数组对象_详解vue组件三大核心概念

    前言 本文主要介绍属性.事件和插槽这三个vue基础概念.使用方法及其容易被忽略的一些重要细节.如果你阅读别人写的组件,也可以从这三个部分展开,它们可以帮助你快速了解一个组件的所有功能. 本文的代码请猛 ...

最新文章

  1. Centos7.4 版本环境下安装Mysql5.7操作记录
  2. 408. Valid Word Abbreviation有效的单词缩写
  3. Pentest Box -windows平台的linux bash,集成了很多测试工具
  4. python面向对象编程之组合
  5. Java基础之参数传递
  6. 利用滞后——超前系统解决高阶随动系统(课程设计)
  7. CentOS6.x下GitLab安装
  8. Java基础之GC回收
  9. 【数据结构与算法】AVL树的Java实现
  10. Python面试题汇总
  11. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘s
  12. vue打开二级或者三级页面传输对象,再刷新浏览器数据丢失问题解决(vue使用router传递数据)
  13. VMware:未能将管道连接到虚拟机, 所有的管道范例都在使用中
  14. 经典查找算法 --- B+树
  15. 大数据技术闲侃之岗位选择解惑
  16. 飞行(Mcool) 13.0.03106 简体中文绿色版
  17. oracle arc安装教程,ArcSDE Oracle的安装教程
  18. rj45 千兆接口定义_网线的RJ45接口的针脚定义
  19. 痞子衡嵌入式:ARM Cortex-M开发文件详解(3)- 工程文件(.ewp)
  20. oracle期初余额录入,用金蝶kis录入数量初始数据的方法

热门文章

  1. php+tcc,64位Linux环境安装PHP TCC扩展方法
  2. vue input文本框中文字整体添加整体删除_揭秘神奇的PPT文本框,高手都喜欢这样的招数...
  3. URLEncoder和URLDecoder中特殊字符的处理方案 URL传值问题
  4. 直播预告 | 全国大学生智能汽车竞赛全向行进组——基础培训
  5. 华工智能车队--这里有一群热爱智能车的人
  6. 检测不到信号,是加点噪声?还是滤除噪声?
  7. 你的心思,我如何懂得?
  8. python爬虫好学不_Python爬虫好学吗?
  9. 交叉熵损失函数公式_交叉熵损失函数对其参数求导
  10. mysql embed_html中object和embed标签的区别