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 相关文章推荐
jquery 输入框数字限制插件
Nov 10 Javascript
javascript 图片上一张下一张链接效果代码
Mar 12 Javascript
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
使用JavaScript实现弹出层效果的简单实例
May 31 Javascript
js实现文字无缝向上滚动
Feb 16 Javascript
Vue.js基础学习之class与样式绑定
Mar 20 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
p5.js入门教程之平滑过渡(Easing)
Mar 16 Javascript
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
react项目从新建到部署的实现示例
Feb 19 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 PDO中文乱码解决办法
2009/07/20 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
javascript实现表单验证
2016/01/29 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
Python检测生僻字的实现方法
2016/10/23 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python函数定义和调用过程详解
2020/02/09 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
python基于win32api实现键盘输入
2020/12/09 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
linux面试相关问题
2012/08/11 面试题
事业单位个人应聘自荐信
2013/09/21 职场文书
优秀员工自荐书
2013/12/19 职场文书
公司同意接收函
2014/01/13 职场文书
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python