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小游戏之象棋暗棋源码详解
Sep 25 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
php register_shutdown_function函数详解
Jul 23 Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 Javascript
BootStrap模态框闪退问题实例代码详解
Dec 10 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 Javascript
Nuxt的动态路由和参数校验操作
Nov 09 Javascript
vue 中的动态传参和query传参操作
Nov 09 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将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP学习之正则表达式
2011/04/17 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
vue params、query传参使用详解
2017/09/12 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python魔术方法详解
2015/02/14 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
Python subprocess库的使用详解
2018/10/26 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
土木工程应届生自荐信
2013/09/24 职场文书
个人收入证明范本
2014/01/12 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
党员检讨书
2014/10/13 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书