zoukankan      html  css  js  c++  java
  • 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;
          }
      }
      
  • 相关阅读:
    git简单介绍
    ssh常用操作
    gentoo emerge简单用法
    golang程序因未知错误崩溃时如何记录异常
    RPC实现原理(HSF、dubbo) 从头开始(一)
    websocket
    tmpfs小结
    CURL常用命令
    SVN命令详解
    3.Linux Shell流程控制
  • 原文地址:https://www.cnblogs.com/KevinTseng/p/12427486.html
Copyright © 2011-2022 走看看