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 浮动导航栏实现代码
Aug 27 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
javascript eval(func())使用示例
Dec 05 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 Javascript
JavaScript中使用Callback控制流程介绍
Mar 16 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
微信小程序 LOL 英雄介绍开发实例
Sep 30 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 Javascript
react.js CMS 删除功能的实现方法
Apr 17 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 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 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
python机器学习之神经网络(三)
2017/12/20 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
电脑租赁公司创业计划书
2014/01/08 职场文书
《火烧云》教学反思
2014/04/12 职场文书
教师师德演讲稿
2014/05/06 职场文书
创文明城市标语
2014/06/16 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
仙境之桥观后感
2015/06/16 职场文书
初二英语教学反思
2016/02/15 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js