Vue中的父子组件通讯

一、在main.js中定义一个$Bus

// 父子组件传参
const $Bus = new Vue()
Vue.prototype.$Bus = $Bus

二、父组件中引入富文本组件

<el-form-item label="正文">
	<testquill ref="myTextEditor" :content="dialogModel.newsValue" /> 
</el-form-item>

三、富文本组件中定义v-model和props

<quill-editor
    ref="myTextEditor"
    v-model="content"
   :options="editorOption"
/>
 props: ['content'],

四、在父组件中定义content并声明handleReceive函数,接收富文本传回的值

content: '', // 编辑器传回来的内容

// 接受富文本穿回来的值
 handleReceive(val) {
   console.log(val)
   this.content = val
}

五、在富文本组件中声明getData函数接收父组件传过来的值

watch: {
    content(newval, oldval) {
      this.content = newval
    }
  },
getData() {
      console.log(this.content)
      this.$Bus.$emit('handleReceive', this.content)
    }

六、在父组件提交函数通知富文本组件接收最新数据,并用content替换原本的值

  async submitTemp(formData) {
    // 通知富文本组件获取最新数据
      this.$Bus.$emit('getData')

七、在父组件和子组件的mounted中调用handleReceive和getData

//父组件的
mounted() {
    var that = this
    this.findList()
    this.$Bus.$on('handleReceive', this.handleReceive)
  },
//子组件的
mounted() {
	this.initButton();
	this.$Bus.$on('getData', this.getData)
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值