vue data恢复初始化数据的实现方法


Posted in Javascript onOctober 31, 2019

在我们进行vue开发过程中,经常会保存一些页面,此时,我们在app.vue的配置如下,

<keep-alive>
 <router-view v-if="$route.meta.keepAlive"></router-view>
 </keep-alive>

以此来保存页面,那么在再次进入这些页面的时候,我们需要重置该页面的原始数据,那么该如何进行呢?是不是要讲每个数据进行重写,答案是否定的。利用Object.assign 以及vue的数据可以快速重置。

Object.assign(this.$data, this.$options.data())

Object.assign() ----详解

Object.assign(target, ...sources)

参数: target 目标对象。sources 源对象。

返回值:目标对象。

描述

如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。

Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象。该方法使用源对象的[[Get]]和目标对象的[[Set]],所以它会调用相关 getter 和 setter。因此,它分配属性,而不仅仅是复制或定义新的属性。如果合并源包含getter,这可能使其不适合将新属性合并到原型中。为了将属性定义(包括其可枚举性)复制到原型,应使用Object.getOwnPropertyDescriptor()和Object.defineProperty() 。

String类型和 Symbol 类型的属性都会被拷贝。

在出现错误的情况下,例如,如果属性不可写,会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改target对象。

注意,Object.assign 不会跳过那些值为 null 或 undefined 的源对象。

注意:针对深拷贝,需要使用其他办法,因为 Object.assign()拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用。

以上这篇vue data恢复初始化数据的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 表单验证方法(实用)
Apr 28 Javascript
javascript 匿名函数的理解(透彻版)
Jan 28 Javascript
jquery maxlength使用说明
Sep 09 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
JS实现完全语义化的网页选项卡效果代码
Sep 15 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
浅谈vue加载优化策略
Mar 19 Javascript
原生js代码能实现call和bind吗
Jul 31 Javascript
js实现指定时间倒计时效果
Aug 26 Javascript
微信小程序实现电子签名并导出图片
May 27 Javascript
JavaScript十大取整方法实例教程
Dec 03 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 #Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 #Javascript
axios 实现post请求时把对象obj数据转为formdata
Oct 31 #Javascript
Javascript和jquery在selenium的使用过程
Oct 31 #jQuery
使用axios发送post请求,将JSON数据改为form类型的示例
Oct 31 #Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 #Javascript
关于vue表单提交防双/多击的例子
Oct 31 #Javascript
You might like
php adodb操作mysql数据库
2009/03/19 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP文件操作详解
2016/12/30 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
python3实现单目标粒子群算法
2019/11/14 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
python实现数字炸弹游戏程序
2020/07/17 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
websocket+sockjs+stompjs详解及实例代码
2018/11/30 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
劳动工资科岗位职责范本
2014/03/02 职场文书
自荐信的格式
2014/03/10 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
罗马假日观后感
2015/06/08 职场文书
就业指导讲座心得体会
2016/01/15 职场文书