vue恢复初始数据this.$data,this.$options.data()解析

 更新时间:2022年03月03日 10:55:22   作者:阡ゼ陌  
这篇文章主要介绍了vue恢复初始数据this.$data,this.$options.data()解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue恢复初始数据this.$data,this.$options.data()

vue恢复初始数据

在vue开放中我们会遇到一个页面或者一个弹窗让他恢复到原始数据的情况,如果数据不多我们可以重设赋值一下,但数据较多的情况下会比较麻烦,这时候可以用到

this.$datathis.$options

  • this.$options.data()这个是vue原始的数据,就是你页面刚加载时的data
  • this.$data这个是现在阶段的vue数据,就是你改变data的数据

下面是一个弹窗的数据,在弹窗关闭时恢复数据,这里使用Object.assign将原始数据和现在的数据融合,会将改变的数据重置到初始状态

watch: {
    ShowModal(val) {
      if (!val) {
        Object.assign(this.$data, this.$options.data())
      }
    }
  }

如果只想让一个数据恢复到以前

this.base = this.$options.data().base

this.$options.data()和this.$data你知多少

场所描述

  • 如何获取vue-data中的所有值?
  • 如何获取vue-data中的某一个值?
  • 如何获取vue-data中的初始值?
  • 如何设置data中的值位初始值?

主角登场

this.options.data() 和 this.data

<template>
    <div>
        <button @click="gotos">改变</button>
        <button @click="obtain">获取改变后的值</button>
        <button @click="inithander">获取初始状态下的值</button>
        <button @click="reset">重置</button>
    </div>
</template>
<script>
export default {
    data(){
        return{
            // https://www.jianshu.com/p/05697682a46f
            obj:{
                name:'张三',
                age:'李四',
                sex:'男'
            },
            subjective:{
                info:'ok'
            }
        }
    },
    methods:{
        gotos(){
            this.obj.sex='我改变了性别'
        },
        //获取vue中data中的所有值 当然data中的值也有可能是被改变了的
        obtain(){
            console.log('vue中data中的所有值',this.$data);
        },
        // 获取组件下初始状态下的值;就是你在data中最初写的值
        inithander(){
            console.log('初始状态下的值',this.$options.data());
        },
        // 重置值
        reset(){
            Object.assign(this.$data.obj,{name:'',age:'', sex:''});
            // 还可以使用   Object.assign(this.$data.obj,this.$options.data().obj); //前提是obj的值是空
            console.log('重置', this.obj )
        }
    }
}
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue2中vue.config.js简单配置代理跨域的方法

    vue2中vue.config.js简单配置代理跨域的方法

    在前后端的开发中总是难免会遇到前后端的跨域问题,下面这篇文章主要给大家介绍了关于vue2中vue.config.js简单配置代理跨域的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • VsCode工具开发vue项目必装插件清单(推荐!)

    VsCode工具开发vue项目必装插件清单(推荐!)

    对于很多使用vscode编写vue项目的新手同学来说,可能不知道使用什么插件,下面这篇文章主要给大家介绍了关于VsCode工具开发vue项目必装插件的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 解决element-ui el-drawer抽屉el-dialog弹框关闭优化demo

    解决element-ui el-drawer抽屉el-dialog弹框关闭优化demo

    这篇文章主要为大家介绍了解决element-ui el-drawer抽屉el-dialog弹框关闭优化demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-06-06
  • vue项目打包优化方式(让打包的js文件变小)

    vue项目打包优化方式(让打包的js文件变小)

    这篇文章主要介绍了vue项目打包优化方式(让打包的js文件变小),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue如何实现table表格置顶

    Vue如何实现table表格置顶

    这篇文章主要介绍了Vue如何实现table表格置顶,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue+element开发使用el-select不能回显的处理方案

    vue+element开发使用el-select不能回显的处理方案

    这篇文章主要介绍了vue+element开发使用el-select不能回显的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue3+element-plus动态路由菜单示例代码

    vue3+element-plus动态路由菜单示例代码

    这篇文章主要介绍了vue3+element-plus动态路由菜单示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11
  • vite+vue3项目报错:TypeError: Promise.allSettled is not a function

    vite+vue3项目报错:TypeError: Promise.allSettled is not a fu

    Vite+Vue3项目中遇到“TypeError: Promise.allSettled is not a function”错误,通常是因为当前运行的JavaScript环境不支持Promise.allSettled,下面就来介绍几种解决方法,感兴趣的可以了解一下
    2024-12-12
  • vue打包上传服务器加载提示错误Loading chunk {n} failed

    vue打包上传服务器加载提示错误Loading chunk {n} failed

    这篇文章主要为大家介绍了vue打包上传服务器加载提示错误Loading chunk {n} failed解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • elementUI Table组件实现表头吸顶效果(示例代码)

    elementUI Table组件实现表头吸顶效果(示例代码)

    文章介绍了如何在vue2.6+和elementUI环境下实现el-table组件的表头吸顶效果,通过添加样式、注册指令、引入指令并在父元素中避免使用overflow:hidden,可以实现场景下表头始终可见,本文通过实例代码介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01

最新评论