父组件index,子组件question,
下图的对话框,对话内容socketOptions是定义在父组件中的,对话框的内容,都是通过websocket推送过来的,
现在在子组件中,通过网络请求,拿到问答信息,想要放到对话框里,就需要用到vue的子组件向父组件传值,大概分为2步
一、在子组件中自定义事件
在子组件中要做的工作只是,使用this.$emit()命令来自定义一个事件。该命令可以传递多个参数:
第一个参数是自定义事件的名字,是必须的,
后面的参数是从子组件传递给父组件的数据,是可选的。要传递几个数据,就将这几个数据作为参数放进该命令中。
例如,在子组件中自定义一个getAns事件,通过该事件向父组件传递两条数据,问题和答案,如下:
二、在父组件中注册该事件,并绑定父组件中的方法,接收数据
在子组件中完成自定义事件之后,我们就可以在父组件中注册该事件,并绑定到父组件中的一个方法,在该方法中,接收子组件中传递过来的数据。
首先、父组件肯定要注册子组件、这个就不说了
父组件中用到了子组件的地方,注册子组件中的getAns事件,绑定receive方法
在父组件中的methods里面实现receive方法,把子组件中的参数赋给socketOptions,就能展示了
如图:
写的比较乱,这里附上参考的链接:Vue笔记——子组件向父组件传递数据