Vuejs2 Vue2.js-在自定义插件中使用自定义组件-如何传递道具?

Vuejs2 Vue2.js-在自定义插件中使用自定义组件-如何传递道具?,vuejs2,Vuejs2,我试图制作一个插件,只是为了显示一个带有自定义个性化设置的模式div,所以我想到了一个带有自定义组件的插件。这个想法是调用应该显示模式框(组件)的插件,但我不知道如何将插件方法道具传递给组件 我有这个插件 import Modal from './components/Modal' const ModalComponent = { install (Vue) { Vue.component('modal', Modal) Vue.mixin({ data ()

我试图制作一个插件,只是为了显示一个带有自定义个性化设置的模式div,所以我想到了一个带有自定义组件的插件。这个想法是调用应该显示模式框(组件)的插件,但我不知道如何将插件方法道具传递给组件

我有这个插件

import Modal from './components/Modal'

const ModalComponent = {
  install (Vue) {
    Vue.component('modal', Modal)

    Vue.mixin({
      data () {
        return {
          status: null,
          modalMessage: null,
          show: false
        }
      },
      component: {
        Modal
      },
      methods: {
        setMessage (status, modalMessage) {

          console.log(status)
          console.log(modalMessage)
          this.status = status
          this.modalMessage = modalMessage
          this.show = true

        }
      }
    })
  }

}

export default ModalComponent
我可以用这种方式调用我其他组件中的插件
this.setMessage(res.status,res.message)

组件是这样的

<template>
    <b-modal
      v-model="show"
      centered
      cancel-disabled
      :title="title"
      :header-bg-variant="header_bg"
    ><p class="my-4">{{modalMessage}}</p>
    </b-modal>
</template>


<script>
export default {
    name: "modal",
    data() {

        return {
            show: false,
            title: null,
            modalMessage: null,
            header_bg: null
        }
    },
    props: {
            show: Boolean,
            title: String,
            modalMessage: String,
            header_bg: String
    }

}
</script>

{{modalMessage}

导出默认值{ 名称:“模态”, 数据(){ 返回{ 秀:假,, 标题:空, modalMessage:null, 头文件\u bg:null } }, 道具:{ 显示:布尔, 标题:字符串, modalMessage:String, 标题\u bg:字符串 } }

如何告诉组件使用插件中的道具进行显示?我错过了在使用插件方法时向它发送道具的文章。问题似乎是你的插件没有生成任何元素。您正在使用mixin在每个组件上创建一个方法,但这将假定每个组件的模板都有一个

我会建议一种不同的方法。。。
在主模板中,添加模态的实例。然后可以使用某种全局状态。我更喜欢使用
vuex
,因为您可以使用vuex状态来管理道具,并使用全局可用的操作(
commit
)和所需的负载。或者,您可以使用vue内部构件来修改状态,但如果您已经在使用vuex,这可能是最简单的选择。

问题似乎在于您的插件没有生成任何元素。您正在使用mixin在每个组件上创建一个方法,但这将假定每个组件的模板都有一个

我会建议一种不同的方法。。。 在主模板中,添加模态的实例。然后可以使用某种全局状态。我更喜欢使用
vuex
,因为您可以使用vuex状态来管理道具,并使用全局可用的操作(
commit
)和所需的负载。或者,您可以使用vue内部构件修改状态,但如果您已经在使用vuex,这可能是最简单的选项