vuejs 异步数据与选项卡

vuejs 异步数据与选项卡

v-if 表达式的值改变时,当前组件就会重新渲染,同时mounted也会执行;
v-show 看起来与mounted没什么关系,组件加载以及mounted执行,不受v-show影响;

目前的景需求是:父组件异步加载数据传递给子组件。
为了确保期望达成,选项卡的每一项必须使用v-show不能使用v-if,这样保证选项只渲染一次:

          <div v-show="curtab=='t1'" class="row">t1</div>
          <div v-show="curtab=='t2'" class="row">t1</div>
          <div v-show="curtab=='t3'" class="row">t1</div>

另外子组件用需要由 v-if 来控制,异步加载完成后inited赋值true,子组件添加v-if=“inited==true”:

Vue.component('parent-component',{
    props:[],
    data: function() {
      return {
      	inited:false,
      	tablist:{
      		t1:'tab1',
      		t2:'tab2',
      		t3:'tab3',
      	},
      	curtab:'t1',
      };
    },

    created: function () {
      this.init();
    },

    methods:{

      // init start
      init: function(){        
        var me = this;
        appCore.getJSON(appCore.url('read'), {init:1}, function(res){
          if(res.code==0){
            me.inited = true;
            for(var k in res.data){
              me[k] = res.data[k];
            }
          }
        });
      },
      // init end
      
	  // setTab start
      setTab: function(tab){
        this.curtab = tab;
      },
      // setTab end

    },

    template:`  <div class="d-flex">
   	  <div class="card " >
        <div class="card-header">          
          <ul class="nav nav-tabs card-header-tabs">
            <li class="nav-item" v-for="(v,k) in tablist">
              <a href="javascript:;" class="nav-link"  
                :class="{active:k==curtab}" 
                @click="setTab(k)">{{v}}</a>
            </li>
          </ul>
        </div>
        <div class="card-body">
          <div v-show="curtab=='t1'" class="row">
          	<child-component v-if="inited==true" ></child-component>
          </div>
          <div v-show="curtab=='t2'" class="row">
          	<child-component v-if="inited==true" ></child-component>
          </div>
          <div v-show="curtab=='t3'" class="row">
          	<child-component v-if="inited==true" ></child-component>
          </div>
        </div>
      </div>

      </div>`,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
异步数据融合是指不同数据源之间的数据在时间上存在延迟,但能够进行有效的整合和融合。CSND(CSDN)作为一个技术社区和资源平台,可以通过异步数据融合来提供更全面和实时的技术内容和资源。 首先,异步数据融合可以将来自不同数据源的技术资讯和文章进行整合,为用户提供更丰富和多样化的内容。CSND可以通过与其他技术社区、博客或新闻网站进行数据交换和整合,将各个平台上的优质技术文章和教程汇总到CSND平台上,使用户可以在一个平台上获取到更全面和深入的技术知识。 其次,异步数据融合可以将来自不同数据源的技术资源进行整合和汇总。CSND可以与开源社区、技术论坛等资源平台进行数据交换和整合,将各个平台上的开源项目、技术工具和学习资源整合到CSND平台上。这样一来,用户可以在CSND上查找到更多的开源项目和学习资源,提高技术学习和开发效率。 此外,异步数据融合还可以将来自不同数据源的用户反馈和评论进行整合和分析。CSND可以将用户在不同平台上的反馈和评论汇总到一个平台上,通过数据融合和分析,了解用户对技术文章、资源和平台功能的意见和建议。这样可以帮助CSND改进和优化技术内容和平台体验,提升用户的满意度。 综上所述,异步数据融合对CSND来说是非常重要的。通过整合来自不同数据源的技术内容、资源和用户反馈,CSND可以为用户提供更丰富、多样化、实时的技术知识和资源,促进技术社区的发展和用户的技术成长。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值