vue动态组件

动态组件使用

动态组件官网解释

通过使用保留的 元素,动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载点,并动态切换:

var vm = new Vue({
el: '#example',
data: {
currentView: 'home'
},
components: {
home: { /* ... */ },
posts: { /* ... */ },
archive: { /* ... */ }
}
})


<component v-bind:is="currentView">
<!-- 组件在 vm.currentview 变化时改变! -->
</component>

也可以直接绑定到组件对象上:


var Home = {
template: '<p>Welcome home!</p>'
}
var vm = new Vue({
el: '#example',
data: {
currentView: Home
}
})

实际项目开发中
1. 引入组件
“`
import submitmodal from ‘../components/SubmitModal’;

“`
2. 动态组件 :is 绑定

  <component  :is="currentView" :title="submitModal.title" :show.sync="submitModal.show" :text="submitModal.text" :on-close="closesubmitModal" :on-ok="submitModal.onOk" :type="submitModal.type" :hasinput="submitModal.hasInput" :input.sync="submitModal.input"></component>
  1. data参数
  submitModal: {
        title: '',
        show: false,
        hasInput: false,
        showError: false,
        text: '',
        type: '',
        onOk: function() {}
      },
      currentView: ''

4.显示组件

      let self = this;
      self.submitModal.show = true;
      self.submitModal.title = '审批拒绝';
      self.submitModal.type = 'delete';
      self.submitModal.hasInput = true;
      self.submitModal.text = '请填写拒绝的原因';
      self.submitModal.onOk = makeFail;
      self.currentView = '';
      setTimeout(() => {
        self.currentView = 'submitmodal';
      }, 1);
  1. 关闭组件

on-ok

self.submitModal.show = false;
            item.hideOrder = true;
            setTimeout(function() {
              self.submitModal.input = '';
            }, 200);
            setTimeout(function() {
              self.submitModal.showError = false;
            }, 400);

on-close

closesubmitModal: function() {
  this.currentView = '';
  this.submitModal.input = '';
  this.submitModal.show = false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值