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 将元素显示在屏幕的中央的代码
Feb 27 Javascript
框架页面高度自动刷新的Javascript脚本
Nov 01 Javascript
JavaScript对Cookie进行读写操作实例
Jul 25 Javascript
JS实现支持Ajax验证的表单插件
Mar 24 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
JS实现的手机端精简幻灯片效果
Sep 05 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
Ionic3 UI组件之autocomplete详解
Jun 08 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 Javascript
Layui多选只有最后一个值的解决方法
Sep 02 Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 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和MySql来与ODBC数据连接
2006/10/09 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
JS的replace方法介绍
2012/10/20 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
为Python程序添加图形化界面的教程
2015/04/29 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python面试题小结附答案实例代码
2019/04/11 Python
Python解析json代码实例解析
2019/11/25 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
Hammitt官网:设计师手袋
2020/05/23 全球购物
C语言中break与continue的区别
2012/07/12 面试题
应届大学生自荐信格式
2013/09/21 职场文书
世博会口号
2014/06/20 职场文书
商务经理岗位职责
2014/08/03 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
会议邀请函
2015/01/30 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python