iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue如何修改data中数据问题
  • 353
分享到

vue如何修改data中数据问题

2024-04-02 19:04:59 353人浏览 泡泡鱼
摘要

目录Vue修改data中数据vue中修改简单类型数据vue中修改数组的方法vue中修改对象的方法关于删除vue修改数据不生效,页面不刷新vue中数据类型vue数据侦听简易理解数据更新

vue修改data中数据

vue的data中保存一些数据,用于页面的渲染。有的时候,当我们手动对data中的数据修改时,vue却监听不到这些数据的变化,导致页面没有触发新一轮的更新。

注意:出现以上问题的原因在于,没有通过vue提供的方法对保存在data中的数据进行修改。强制性通过js对数据修改的那些方法,有一部分在vue中是不被认可的。

vue中修改简单类型数据

简单类型的数据,包括number boolean bigInt string 等

修改这类型的数据,我们可以直接赋值,vue也能监听到数据发生的变化,然后作出修改。

xxxx表示变量名,yyyy则是要赋值的新值。

this.$data.xxxx = yyyy
或
this.xxxx = yyyy

vue中修改数组的方法

一、变异方法(7个):push ,shift, unshift, pop, sort, splice, reverse

这些方法在与js基本一致(推荐)

  • push:此方法是在数组的后面添加新加元素,此方法改变了数组的长度
  • pop:此方法在数组后面删除最后一个元素,并返回数组,此方法改变了数组的长度
  • shift:此方法在数组后面删除第一个元素,并返回数组,此方法改变了数组的长度
  • unshift:此方法是将一个或多个元素添加到数组的开头,并返回新数组的长度
  • splice:Array.splice(开始位置, 删除的个数,替换的元素) 万能方法,可以实现增删改
  • sort:该方法用于对数组进行排序
  • reverse:该方法用于将数组的内容倒置

二、set方法(推荐)

this.set 这是 vue 实例调用 set 这是vue实例调用set这是vue实例调用set()方法,专门用来修改数组的

  • 第一个参数,已经存在data中的数据,要被修改的数组
  • 第二个参数,要修改的数组下标
  • 第三个参数,要修改的数组对应下标的值
this.$set (this.selectedarr, index, option)
data() {
    return {
        textArray: ["1","2","3"]
    }
}

修改最后一个为"4"

this.$set (this.textArray, 2, "4")

三、用一个全新的数组替换原先的数组,而不是在原先数组上修改(不推荐)

data() {
    return {
        textArray: ["1","2","3"]
    }
}

修改最后一个为"4"

this.textArray = ["1","2","4"]

简单总结一下,这三种修改数组的方法,最后一种不推荐,因为这会引起vue中整个数组数据对应的页面重新渲染,而我们明明只想改变数组中的某一个元素。

vue中修改对象的方法

一、方法直接改(如果对象数据过于复杂,层次很深的话,不推荐)

this.obj.dengxi = 'dengxi' 

二、使用vue的实例提供的方法进行操作(推荐,vue监听了这个方法,做到更好的更新渲染)

this.$set(vm.obj,'dengxi','dengxi好帅')

三、通过vue构造函数提供的方法来改变(推荐,这个其实和第二种方法一样)

Vue.set(this.obj,'dengxi','dengxi真的好帅')

关于删除

如果想要将对象中的某一个键值对应的value删掉

一、可以通过上面的三种方法,将其设置为空(推荐,粗暴简单,但有效)

this.obj.dengxi = null

二、vue实例提供的删除方法(推荐)

this.$delete(this.obj,'yangxi')

三、vue构造函数提供的方法(其实和第二种一样,推荐)

Vue.delete(this.obj,'dengxi')

四、创建一个新对象,覆盖之前的对象,vue仍能实现更新(不推荐)

this.obj = {....}

vue修改数据不生效,页面不刷新

vue中数据类型

包括:基本类型,对象,数组

vue数据侦听简易理解

在vue2中,是通过Object.definedPropety()来进行数据代理。

我们配置在const vm = new Vue({})中的deta会变成 vm自身上的属性,也会存在于vm._data中,此时data中对应的每一个属性都会有getter和setter,数据改变后模板重新解析,就依赖于setter对数据的侦听。

从上图黑色部分可以看到,age是对象,hobbies是字符串数组,friends是对象数组,他们本身都有getter和setter来实现响应式。

1、类型为基本数据类型:

此时,该属性在vm上有直接的getter和setter,可以直接修改

vm.name="xiaoming"

2、类型为对象

 此时对象的每个属性都有对应个getter和setter,也可以实现响应式

 3、类型为数组

 在js中,想要操作数组中的某个元素,我们可能会通过索引来操作,然而,从截图中,我们发现没有对应元素索引值的getter和setter方法,因此我们再通过数组索引值修改数据,就不会触发模板解析,从而就不会刷新页面。

数据更新后,页面不刷新的可能原因

1. 初始化时data中不存在该属性

通过 vm.xxx=yyy / vm.xxx.yyy="abc"方式添加,该属性为非响应式。想要添加响应式数据,需要借助vue提供的set方法:

Vue.set(vm.xxx, 'yyy', 'zzz')  

或者 

vm.$set(vm.xxx, 'yyy', 'zzz')

也可以在初始化时的data数据中添加目标属性

注意:data中是不可直接用Vue.set()方式添加属性的 即 Vue.set(vm, 'yyy', 'zzz')  或者  vm.$set(vm, 'yyy', 'zzz')是不合法的,控制台会报错,我们只能往已存在的属性中增加属性。

2. 通过索引值修改数组元素

错误方式:

vm.hobbies[0]='上班'
vm.friends[0]={name:'henmeimei',age=”19”}

正确修改方式:

通过数组的pop(末尾删除)/push(末尾添加)/shift(开头删除)/unshift(开头添加)/reverse(反转)/sort(排序)/splice(起始位置,删除数量,插入元素)方法操作

Vue.set(vm.items, indexOfItem, newValue)     
vm.$set(vm.items, indexOfItem, newValue)

通过其他方式(filter/map/...)修改数组,并重新赋值给原数组

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue如何修改data中数据问题

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue如何修改data中数据问题
    目录vue修改data中数据vue中修改简单类型数据vue中修改数组的方法vue中修改对象的方法关于删除vue修改数据不生效,页面不刷新vue中数据类型vue数据侦听简易理解数据更新...
    99+
    2024-04-02
  • vue怎么修改data数据问题并实时显示
    这篇文章主要为大家展示了“vue怎么修改data数据问题并实时显示”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue怎么修改da...
    99+
    2024-04-02
  • vue中data数据之间如何赋值问题
    目录vue data数据之间如何赋值实现方式vue Data数据赋值变量语法vue data数据之间如何赋值 最近我妹突然问我vue的data之间需要进行赋值,这是什么奇葩需求,干嘛...
    99+
    2024-04-02
  • vue如何修改data中的obj数据的属性
    目录修改data中的obj数据的属性修改data以实现数据响应式怎么保证你的变化我Vue能监听到?如果初始值没给这个变量Vue还能监听吗?修改data中的obj数据的属性 //方法一...
    99+
    2022-11-13
    vue data属性 vue 修改data vue修改data中obj属性
  • vue修改数据页面不重新渲染问题如何解决
    本文小编为大家详细介绍“vue修改数据页面不重新渲染问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue修改数据页面不重新渲染问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue渲染机制...
    99+
    2023-07-05
  • vue中如何初始化data数据
    目录如何初始化data数据vue程序初始化流程初始化改写的原因流程实现源码流程初始化流程如何初始化data数据 后台管理系统中,新建和编辑使用同一个页面,常常需要初始化data数据。...
    99+
    2024-04-02
  • vue 数据(data)赋值问题的解决方案
    总结一下我遇到的一个纠结很久的问题。 在项目中需要用到后台的数据对前端渲染,使用到了vue整合的axios,使用vue中的钩子函数在页面组件挂载完成之后向后台发送一个get请求然后将...
    99+
    2024-04-02
  • Vue如何解决子组件data从props中无法动态更新数据问题
    目录问题原因示例我的解决办法问题 最近在公司写vue项目的时候,发现一个渲染问题,父组件传给子组件的数据,当该数据在父组件的中发生改变的时候,子组件中的数据不会因其的改变而去改变。 ...
    99+
    2022-11-13
    Vue子组件 Vue data Vue props Vue动态更新数据
  • 解决vue修改数据页面不重新渲染问题
    目录vue渲染机制和如何解决数据修改页面不刷新问题的多种方法vue渲染机制和如何解决数据修改页面不刷新问题的多种方法 本文不讲原理,只讲干货易懂易学 首先 第一点,vue底层是 将d...
    99+
    2023-03-24
    vue修改数据页面 修改页面不重新渲染
  • jquery如何修改data-options
    今天小编给大家分享一下jquery如何修改data-options的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面...
    99+
    2024-04-02
  • vue的axios请求改变content-type为form-data问题
    目录axios请求改变content-type为form-dataaxios无法发送‘Content-Type‘: ‘multipart/form...
    99+
    2024-04-02
  • thinkphp3.2中如何修改数据
    这篇文章主要介绍“thinkphp3.2中如何修改数据”,在日常操作中,相信很多人在thinkphp3.2中如何修改数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp3.2中如何修改数据”的疑...
    99+
    2023-07-05
  • 如何解决spring-data-jpa事物中修改属性自动更新update问题
    小编给大家分享一下如何解决spring-data-jpa事物中修改属性自动更新update问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题还原项目orm层用...
    99+
    2023-06-20
  • 如何解析vue data不可以使用箭头函数问题
    这篇文章将为大家详细讲解有关如何解析vue data不可以使用箭头函数问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先需要明确,a() {}和 b: () =>...
    99+
    2024-04-02
  • 如何修改php.ini超时问题
    本文小编为大家详细介绍“如何修改php.ini超时问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何修改php.ini超时问题”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。修改php.ini超时的方法:1、...
    99+
    2023-07-05
  • sqlserver如何修改表中数据
    要修改表中的数据,可以使用SQL Server中的UPDATE语句。UPDATE语句用于更新表中的行,可以根据指定的条件来更新数据。...
    99+
    2024-04-09
    SQLServer
  • vue中data里面的数据如何相互使用
    本篇内容主要讲解“vue中data里面的数据如何相互使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中data里面的数据如何相互使用”吧!data里面的数据相互使用今天在写代码的时候,遇...
    99+
    2023-06-30
  • 如何修改php数据
    这篇文章主要介绍了如何修改php数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何修改php数据文章都会有所收获,下面我们一起来看看吧。1.使用SQL查询修改数据首先,您可以使用SQL查询语句修改数据库中的...
    99+
    2023-07-05
  • sqlserver如何修改数据
    要修改SQL Server中的数据,可以使用UPDATE语句。以下是一个基本的示例: UPDATE 表名 SET 列名1 = 新值1...
    99+
    2024-04-12
    sqlserver
  • mongodb中如何修改字段数据
    要修改MongoDB中的字段数据,可以使用update方法来更新文档。以下是一个简单的示例: 假设有一个名为users的集合,其中包...
    99+
    2024-04-09
    mongodb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作