Vue 更新Data数据页面无反应问题

问题描述

  • 更新了data里的数据,页面无同步变化

原因分析

  • 原因1:存在this指向问题,没有真正更新到data
  • 原因2:Vue不能检测对象属性的添加或删除
  • 原因3:更新的层级太深

解决方法

  • 处理原因1:存储外部环境this指针,在异步回调函数中使用
var self = this;
$.get({
  url: '/api',
  success: function(res){
    self.list = res.data;
  }
})
  • 处理原因2:可以使用Vue.set()函数
var self = this;
Vue.set(self.template, 'name', 'Kevin');
  • 处理原因3:建议对象层级设计时尽量扁平化

    • 方法一:使用强制刷新
    var self = this;
    self.tempalte.hobby.games.football.color = 'blue';
    self.$forceUpdate();
    • 方法二:创建一个指向深层级的变量,然后直接更新该变量
    data: {
        tempalte: {
            hobby: {
                games: {
                    football:{
                        color: ''
                    }
                }
            }
        }
    },
    mounted: {
        var self = this;
        self.footballColor = self.tempalte.hobby.games.football.color;
    },
    methods: {
        setFootballColor: function(color){
            var self = this;
            self.footballColor = color;
        }
    }

原文地址:https://www.cnblogs.com/KevinTseng/p/12427486.html

时间: 2024-08-30 10:37:19

Vue 更新Data数据页面无反应问题的相关文章

vue的data数据用的是全局变量,变量是普通数据类型,变量改变,data未改变

如果vue的data数据用的是全局变量,变量是普通数据类型,那么当全局变量的值发生改变的的时候,那么data中用的这个值是不会发生改变的,也无法触发视图更新 ,因为是普通数据类型 解决: 全局的普通数据类型改为引用数据类型 Vue({ data:{ tabMouth: tabMouth, tabDay:tabDay, } }) var tabMouth = {value: false}; var tabDay = {value: false}; var tabEventCall = functi

vue的data的数据进行指定赋值,用于筛选条件的清空,或者管理系统添加成功后给部分数据赋值为空

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

学习aiax(javascript)--页面无刷新更新ajax更新时间

1.JSP代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"

vue使用ECharts时的异步更新与数据加载

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Helvetica Neue"; color: #404040 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #737373 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco

vue更改了数据但是视图却没有更新

今日总结:让钩子函数背锅的一上午,跪求原谅 需求:页面刷新时,保留当前页面的选中状态 解决思路:在data里设置一下初始值,保证首次进入有默认选中状态,其次再操作时,把选中的状态存sessionStorage.在created里为标记状态的变量赋值,优先sessionStorsge取,取不到就设置为默认值. 代码: data() { return { thirdHidden: 2, // 二级菜单折叠还是隐藏 -1 折叠 order:显示 isCheck: 1, // 二级菜单样式 1 选中状态

Vue. 之 刷新当前页面,重载页面数据

Vue. 之 刷新当前页面,重载页面数据 如下截图,点击左侧不同的数据,右侧根据左侧的KEY动态加载数据.由于右侧是同一个页面,在进行路由跳转后,不会再次刷新数据. 解决方案: 右侧的页面中 script代码块添加:watch模块,如下代码: ... ... mounted : function() { this.loadData(); }, watch: { //监听相同路由下参数变化的时候,从而实现异步刷新 '$route'(to,from) { this.loadData(); }, },

django 使用redis进行页面数据缓存和更新缓存数据

转自:https://blog.csdn.net/xiaohuoche175/article/details/89304601 在开发过程中会遇到一些页面的数据是很长时间才进行更新的,不使用缓存的情况下,用户每次访问这些都需要先去数据库中获取这些数据,当访问量较大时,这样获取数据的方式就会降低页面的访问速度,影响效率,这时就可以使用redis将这些数据保存起来,通过判断是否生成过获取以及是否更新过数据来生成新的缓存数据 具体操作如下: 在settings.py里添加缓存设置 # Django的缓

深入理解--VUE组件中数据的存放以及为什么组件中的data必需是函数

1.组件中数据的存放 ***(重点)组件是一个单独模块的封装:这个模块有自己的HTML模板,也有data属性. 只是这个data属性必需是一个函数,而这个函数返回一个对象,这个对象里面存放着组件的数据. <template id="MyCpn"> <div> <h2>组件数据的存放 </h2> <p>{{title}}</p> </div> </template> <script>

vue 还原Data里面的数据

this.$data包含现有的data数据, this.$options.data()中是原有的data数据 还原代码 Object.assign(this.$data.searchForm, this.$options.data().searchForm) 原文地址:https://www.cnblogs.com/lianxisheng/p/11660832.html