返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue中data数据初始化方法详解
  • 179
分享到

Vue中data数据初始化方法详解

Vuedata数据初始化Vuedata初始化Vue数据初始化 2023-05-19 18:05:24 179人浏览 独家记忆
摘要

目录初始化化数据的一些方法以下是一个简单的例子父组件子组件显示效果销毁数据的父组件子组件显示效果当组件的根元素使用了v-if的时候, 并不会初始化data中的数据 如果想完全销毁该组

当组件的根元素使用了v-if的时候, 并不会初始化data中的数据 如果想完全销毁该组件并且初始化数据,需要在使用该组件的本身添加v-if 或者是手动初始化该组件中的数据

初始化化数据的一些方法

Object.assign(this.$data, this.$options.data())
this.$data:当前的data数据(修改过后的);
this.$options.data():初始化的data数据;
Object.assign的作用就是把this.$options.data()的值赋值给this.$data;
// 表单初始化
this.fORM = this.$options.data().form
//  Vue在创建页面是会把data数据绑定到option属性里,恢复只需要调用就可以了

下面详细说说Object.assign的用法:

es6的官方文档的解释是:Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象

方法一:

this.数据名 = this.$options.data().数据名;//重置某一个指定的数据

方法二:

this. data = this. data = this. data=this.options.data(); //初始化data里面的所有数据

方法三:

Object.assign(this. d a t a , t h i s . data, this. data,this.options.data()) //获取data源对象,覆盖当前data对象状态

以下是一个简单的例子

未销毁数据的 直接在根元素上使用v-if 只是销毁了el-dialog组件及其中的数据 并没有销毁当前组件的数据

父组件

<template>
  <div>
    <el-button @click="handleOpen">显示</el-button>
    <el-button @click="handleCls">隐藏</el-button>
    <Children ref="children" />
  </div>
</template>
<script>
import Children from './children.vue'
export default {
  name: 'Father',
  components: {
    Children
  },
  props: {
  },
  data() {
    return {
    }
  },
  methods: {
    handleOpen() {
      this.$refs.children.dialogFormVisible = true
      self.console.log(this.$refs.children.dialogFormVisible)
    },
    handleCls() {
      this.$refs.children.dialogFormVisible = false
    }
  }
}
</script>
<style lang="sCSS" scoped>
</style>

子组件

<template>
  <el-dialog v-if="dialogFormVisible" title="收货地址" :visible.sync="dialogFormVisible">
    <el-form :model="form">
      <el-form-item label="活动名称" :label-width="formLabelWidth">
        <el-input v-model="form.name" autocomplete="off" />
      </el-form-item>
      <el-form-item label="活动区域" :label-width="formLabelWidth">
        <el-select v-model="form.region" placeholder="请选择活动区域">
          <el-option label="区域一" value="shanghai" />
          <el-option label="区域二" value="beijing" />
        </el-select>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="dialogFormVisible = false">取 消</el-button>
    </div>
  </el-dialog>
</template>
<script>
export default {
  components: {
  },
  data() {
    return {
      dialogFormVisible: false,
      form: {
        name: '',
        region: '',
        date1: '',
        date2: '',
        delivery: false,
        type: [],
        resource: '',
        desc: ''
      },
      formLabelWidth: '120px'
    }
  }
}
</script>
<style lang="scss" scoped>
</style>

显示效果

第一次填写数据

第二次打开

销毁数据的

父组件

<template>
  <div>
    <el-button @click="handleOpen">显示</el-button>
    <el-button @click="handleCls">隐藏</el-button>
    <Children v-if="dialogShow" ref="children" @handleClose="handleClose" />
  </div>
</template>
<script>
import Children from './children.vue'
export default {
  name: 'Father',
  components: {
    Children
  },
  props: {
  },
  data() {
    return {
      dialogShow: false
    }
  },
  methods: {
    handleOpen() {
      // this.$refs.children.dialogFormVisible = true
      this.dialogShow = true
      // self.console.log(this.$refs.children.dialogFormVisible)
    },
    handleCls() {
      this.dialogShow = false
      // this.$refs.children.dialogFormVisible = false
    },
    handleClose() {
      this.dialogShow = false
    }
  }
}
</script>
<style lang="scss" scoped>
</style>

子组件

<template>
  <el-dialog title="收货地址" :visible="true">
    <el-form :model="form">
      <el-form-item label="活动名称" :label-width="formLabelWidth">
        <el-input v-model="form.name" autocomplete="off" />
      </el-form-item>
      <el-form-item label="活动区域" :label-width="formLabelWidth">
        <el-select v-model="form.region" placeholder="请选择活动区域">
          <el-option label="区域一" value="shanghai" />
          <el-option label="区域二" value="beijing" />
        </el-select>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="handleClose">取 消</el-button>
    </div>
  </el-dialog>
</template>
<script>
export default {
  components: {
  },
  data() {
    return {
      dialogFormVisible: false,
      form: {
        name: '',
        region: '',
        date1: '',
        date2: '',
        delivery: false,
        type: [],
        resource: '',
        desc: ''
      },
      formLabelWidth: '120px'
    }
  },
  methods: {
    handleClose() {
      this.$emit('handleClose')
    }
  }
}
</script>
<style lang="scss" scoped>
</style>

显示效果

第一次填写

第二次打开数据已经清空了

到此这篇关于Vue中data数据初始化方法详解的文章就介绍到这了,更多相关Vue data数据初始化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue中data数据初始化方法详解

本文链接: https://lsjlt.com/news/213540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue中data数据初始化方法详解
    目录初始化化数据的一些方法以下是一个简单的例子父组件子组件显示效果销毁数据的父组件子组件显示效果当组件的根元素使用了v-if的时候, 并不会初始化data中的数据 如果想完全销毁该组...
    99+
    2023-05-19
    Vue data数据初始化 Vue data初始化 Vue数据初始化
  • vue中如何初始化data数据
    目录如何初始化data数据vue程序初始化流程初始化改写的原因流程实现源码流程初始化流程如何初始化data数据 后台管理系统中,新建和编辑使用同一个页面,常常需要初始化data数据。...
    99+
    2024-04-02
  • vue初始化data方法是什么
    今天小编给大家分享一下vue初始化data方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vue初始化data方法有...
    99+
    2023-07-04
  • vue初始化data方法有哪些
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。vue data有两种初始化的方式,function和object,但是这两种情况适用场景有哪些?能不能通用?带着这两个问题咱们一起分析下data初始化// 代码来源于官...
    99+
    2023-05-14
    vue3 Vue
  • vue恢复初始数据this.$data,this.$options.data()解析
    目录vue恢复初始数据this.$data,this.$options.data()vue恢复初始数据this.$options.data()和this.$data你知多少场所描述主...
    99+
    2024-04-02
  • Java中ArrayList初始化的四种方法详解
    目录1 起因2 解决方案2.1 双括号法2.2 Arrays.asList2.3 stream2.4 Lists3 总结1 起因 在实际业务开发中, 我们经常会遇到需要临时创建一个数...
    99+
    2024-04-02
  • Vue 重置data的数据为初始状态操作
    在某些情况下,需要重新使用data中的数据,但是data中的数据已经被各种表单、变量等赋值,那么怎么重置data的值呢? 1. 逐个赋值 ... data() { return...
    99+
    2024-04-02
  • Java Boolean 初始化方式详解
    Java Boolean 初始化方式 1、Boolean(String boolString); 以字符串的方式初始化,只有当字符串是“true”(不区分大小写,也可以是tRue之类...
    99+
    2024-04-02
  • java 中数组初始化实例详解
    1.数组初始化定义数组的方式:  int[] arr1; 或  int arr1[];数组初始化  通过上边的定义,我们只是得到了一个数组的引用。这时已经为引用分配了存储空间,但是还没有给数组对象本身分配任何空间。想要给数组对象分...
    99+
    2023-05-31
    java 数组 ava
  • Vue源码学习之数据初始化
    目录初始化数据创建Vue实例构造函数扩展方法初始化状态调用initData方法对数据进行代理初始化数据 环境搭建:菜鸟学Vue源码第一步之rollup环境搭建步 响应式数据的核心就是...
    99+
    2024-04-02
  • Java中实例初始化和静态初始化的过程详解
    目录一、实例初始化1.1 实例初始化过程1.2 实例初始化的顺序1.3 实例初始化的注意事项二、静态初始化2.1 静态初始化过程2.2 静态初始化的顺序2.3 静态初始化的注意事项三...
    99+
    2023-05-18
    Java实例初始化和静态初始化 Java实例初始化 Java静态初始化 Java初始化
  • mysql初始化数据库的方法是什么
    要初始化一个数据库,可以通过以下步骤: 登录MySQL数据库服务器,可以使用如下命令: mysql -u root -p ...
    99+
    2024-05-06
    mysql
  • 详解bash中的初始化机制
    Bash初始化文件 交互式login shell 在下列情况下,我们可以获得一个login shell: uFJHrKxWJu 登录系统时获得的顶层shell,无论是通过本地终端登录,还是通过网络ssh登录。这种情...
    99+
    2022-06-04
    bash 初始化 bash 初始化机制
  • 数据库初始化及数据库服务端操作详解
    目录为什么要学习数据库?数据库的好处:数据库的概念:SQL语言的介绍SQL的优点数据库存储数据的原理MySQL服务端的操作1.服务端的登陆和退出2.MYSQL常见命令为什么要学习数据...
    99+
    2024-04-02
  • Python中list初始化方法示例
    本文实例讲述了Python中list初始化方法。分享给大家供大家参考,具体如下: 1、基本方法。 lst = [1, 2, 3, 4, 5] 2、初始化连续数字。 >>> l...
    99+
    2022-06-04
    示例 初始化 方法
  • 详解Vue2中的 initState状态初始化
    目录initState 状态初始化1. initProps2. initSetup3. initMethods4. initData5. initComputed 与 initWat...
    99+
    2024-04-02
  • java中的数组初始化赋初值方式
    目录java数组初始化赋初值方法一方法二方法三数组互相赋值方式使用for循环使用Object的clone()使用System的静态方法arraycopy()java数组初始化赋初值 ...
    99+
    2024-04-02
  • php有几种数组初始化方法
    3种方法:1、利用“[]”单独给元素赋值,语法“$数组变量名[下标]=值;”;2、用“[]”把所有元素一起初始化,语法“$数组变量名=[键值列表];”;3、用array()把所有元素一起初始化,语法“$数组变量名=array(键值列表)”。...
    99+
    2022-06-14
    php数组 php
  • C#数组初始化的应用方法
    本篇内容介绍了“C#数组初始化的应用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#数组初始化的应用在数据压缩方面的应用是什么呢?我们...
    99+
    2023-06-17
  • php数组初始化方法有哪些
    今天小编给大家分享一下php数组初始化方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。3种方法:1、利用“[]”单独...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作