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;
          }
      }
      
  • 相关阅读:
    Spring Boot基础
    MyBatis开启二级缓存
    MyBatis逆向工程
    html实现“加入收藏”代码
    vue-router 基本使用
    vue 脚手架安装
    webpack入门 webpack4常见出错之处
    $.ajax()方法详解
    防止网页被嵌套
    H5字符实体参考
  • 原文地址:https://www.cnblogs.com/KevinTseng/p/12427486.html
Copyright © 2011-2022 走看看