个人理解vue-if的使用

一.vue-if的作用以及原理

动态显示DOM元素。v-if是动态的向DOM树内添加或者删除DOM元素

二.vue-if的编译条件

v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译。

三.实例

下面是vue中异步获取数据的代码:

export default {
    data() {
      return {
        seller: {}
      };
    },
    // 这里在模拟从后端获取数据接口的步骤
    created() {
      this.$http.get('/api/seller').then((response) => {
        response = response.body;
        if (response.errno === ERR_OK) {
          this.seller = response.data;
          console.log(this.seller);
        }
      });
    },

我们知道vue的生命周期是先实例化vue对象然后在初始化数据,之后在实例创建完成之后才会调用created方法。所以在这里一开始初始化seller的时候,seller是空的,由于是异步获取数据,所以在使用seller(假设这是一个json数据格式)的时候,先是对变量进行解析,需要使用到这个变量之后我们才会去使用钩子函数进行异步获取数据。

<template>
  <div class="header">
    <div class="content-wrapper">
      <div class="avatar">
        <img width="64" height="64" :src="seller.avatar">
      </div>
      <div class="content">
        <div class="title">
          <span class="brand"></span>
          <span class="name">{{seller.name}}</span>
        </div>
        <div class="description">
          {{seller.description}}/{{seller.deliveryTime}}分钟送达
        </div>
        <div v-if="seller.supports" class="support">
          <span class="icon"></span>
          <span class="text">{{seller.supports[0].description}}</span>
        </div>
      </div>
    </div>
    <div class="bulletin-wrapper"></div>
  </div>
</template>

所以在.vue文件中必须先要做一个判断,看看seller.supports(这是一个json数据中的数组)的元素是否为空,如果为空的话是不会有这个DOM元素的,否者由于seller在实例初始化还没有调用 钩子函数created的时候是空的,在实例创建完成,调用钩子函数created之后才会有数据。

 

转载于:https://www.cnblogs.com/wucong1206/p/8462053.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值