vue如何重置data的所有属性
目录
- 重置data的所有属性
- 1.拿到data原始属性
- 2.拿到当前的data
- 3.复制到当前$data里面
- 重置当前页面的data
- 问题一
- 问题二
重置data的所有属性
1.拿到data原始属性
this.$options.data()
2.拿到当前的data
this.$data
3.复制到当前$data里面
Object.assign(this.$data, this.$options.data());
重置当前页面的data
问题一
在某些情况下,需要重新使用data中的数据,但是data中的数据已经被各种表单、变量等赋值,那么怎么重置data的值呢?
解决方式:Object.assign()
JS相关函数
函数 | 含义 |
---|---|
Object.assign(target, …sources) | 将所有可枚举属性值从一个或多个源对象复制到目标对象 |
vue中相关函数
函数 | 含义 |
---|---|
this.$data | 当前状态下的data |
this.$options.data() | 该组件初始状态下的data |
所以,可以通过下面的方式重置当前页面的data:
Object.assign(this.$data, this.$options.data.call(this));
或者,单独重置data中的某一个对象或者属性:
this.form = this.$options.data().form
问题二
用 this.$options.data() 重置组件data时,data() 里用this获取的props或methods都为undefined
原因
new Vue的时候传了一个对象,把该对象记为options,Vue将options中自定义的属性和Vue构造函数中定义的属性合并为vm.options,vm.options.data()中的this指向vm.options ,而methodA和B并没有直接挂在vm.options下,所以this.methodA和this.B为undefined。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Vue 重置data的数据为初始状态操作
在某些情况下,需要重新使用data中的数据,但是data中的数据已经被各种表单.变量等赋值,那么怎么重置data的值呢? 1. 逐个赋值 ... data() { return { name: '', sex: '', desc: '' } } ... // 逐个赋值 this.name = '' this.sex = '' this.desc = '' 这个方法比较笨,当然也可以实现效果,但是一个一个去重新赋值比较麻烦而且代码看起来也会比较乱. 下面这个方法肯定是你喜欢的,一行代码搞定- 2.
-
vue使用assign巧妙重置data数据方式
目录 使用assign巧妙重置data数据 Vue组件可能会有这样的需求 重置data的数据为初始状态 1.逐个赋值 2.使用Object.assign() 扩展 使用assign巧妙重置data数据 由于Object.assign()有上述特性,所以我们在Vue中可以这样使用: Vue组件可能会有这样的需求 在某种情况下,需要重置Vue组件的data数据.此时,我们可以通过this.$data获取当前状态下的data,通过this.$options.data()获取该组件初始状态下的data.
-
Vue 重置组件到初始状态的方法示例
Vue 通过直接强制刷新 DOM 来达到重置组件的效果,这样可以重置一些组件的动画以及组件内初始的数据 强制重新生成 DOM 的实现 原理:强制重新生成 DOM 可以通过 Vue 中的 key 来实现.在 Vue 更新 Dom 时,如果 key 值相同则会对原有组件进行复用,如果不同,则会重新生成. 代码示例: 每次点击 refresh 按钮,Demo 组件都会重新生成 组件: /** * Demo.vue */ <template> <div>Demo</div> &
-
vue如何重置data的所有属性
目录 重置data的所有属性 1.拿到data原始属性 2.拿到当前的data 3.复制到当前$data里面 重置当前页面的data 问题一 问题二 重置data的所有属性 1.拿到data原始属性 this.$options.data() 2.拿到当前的data this.$data 3.复制到当前$data里面 Object.assign(this.$data, this.$options.data()); 重置当前页面的data 问题一 在某些情况下,需要重新使用data中的数据,但是da
-
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
在项目中遇到需要动态加载图片路径,图片路径并非是从后台获取过来的数据. 因此在data中必须用require加载,否则会当成字符串来处理. HTML如下: JS如下: 以上这篇vue中如何动态绑定图片,vue中通过data返回图片路径的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Vue.js中的图片引用路径的方式 基于vue 动态加载图片src的解决方法 vue cli使用绝对路径引用图片问题的解决
-
vue基础之data存储数据及v-for循环用法示例
本文实例讲述了vue data存储数据及v-for循环用法.分享给大家供大家参考,具体如下: vue data里面存储数据 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net vue data里面存储数据</title> <style> </style> &l
-
vue里的data要用return返回的原因浅析
官网的示例 var vm = new Vue({ el: '#example', data: { message: 'Hello' } }); 项目中的写法 data() { return { message: 'Hello' } } 为什么要把data变成函数并return属性呢? 组件是一个可复用的实例,当你引用一个组件的时候,组件里的data是一个普通的对象,所有用到这个组件的都引用的同一个data,就会造成数据污染. 将data封装成函数后,在实例化组件的时候,我们只是调用了data函数
-
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
1. 子类父类 2.Vue.extend() //创建vue的子类 组件的语法器 Vue.extend(options) Profile().$mount('#app') // 挂在app上,并替换app 新建 initExend ==> Vue.extend 3. strat.data ==> if(!vm){子组件中data的值是一个方法function ==> mergeDataorFn()} // 数据的合并 ==> else {} //通过实例绑定的data 实
-
vue实现重置表单信息为空的方法
背景 之前表单重置为空的话是这样写的 this.fromline = { access_provider_name: '', // 接入商名称 access_provider_address: '', // 接入商所属地区 remark: '' // 备注 } 直接把表单对象的属性设置为空 今天突然发现一个这样的玩意 少写了好多代码 (开心) this.$refs['fromline'].resetFields() 这个玩意也可以实现表单重置. 以上这篇vue实现重置表单信息为空的方法就是小编分
-
vue实例中data使用return包裹的方法
在简单的vue实例中看到的Vue实例中data属性是如下方式展示的: let app= newVue({ el:"#app", data:{ msg:'' }, methods:{ } }) 在使用组件化的项目中使用的是如下形式: export default{ data(){ return { showLogin:true, // def_act: '/A_VUE', msg: 'hello vue', user:'', homeContent: false, } }, method
-
Vue组件为什么data必须是一个函数
前言 我们需要先复习下原型链的知识,其实这个问题取决于 js ,而并非是 vue . function Component(){ this.data = this.data } Component.prototype.data = { name:'jack', age:22, } 首先我们达成一个共识(没有这个共识,请补充下 js 原型链部分的知识): 实例它们构造函数内的this内容是不一样的. Component.prototype ,这类底下的方法或者值,都是所有实例公用的. 解开疑问 基
随机推荐
- 启动targetcli时遇到错误解决办法
- JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
- VBS 脚本不能运行 提示Windows无法访问指定设备路径或文件
- Oracle 11g数据库详细安装图文教程
- python根据路径导入模块的方法
- Js数组的操作push,pop,shift,unshift等方法详细介绍
- php上传图片存入数据库示例分享
- Laravel网站打开速度优化的方法汇总
- php实现计数器方法小结
- Python多进程并发(multiprocessing)用法实例详解
- 优化Python代码使其加快作用域内的查找
- Tomcat数据源配置方法_JBuilder中
- jQuery中size()方法用法实例
- JavaScript基于原型链的继承
- js 模仿网上的限时抢购效果
- JS数组array元素的添加和删除方法代码实例
- JAVA基础 语句标签的合法使用,以及{}语句块到底有什么用?
- C#编写的艺术字类实例代码
- Android 对话框sweet-alert-dialog
- Android编程实现的短信编辑器功能示例