博客列表 >Vue组件之间的传值

Vue组件之间的传值

Jason Pu?
Jason Pu?原创
2021年01月20日 14:21:03731浏览

一、父组件向子组件传值

即父组件通过属性的方式向子组件传值,子组件通过 props 来接收。
例如我们要把“msg”的内容传给子组件:

  1. let app = new Vue({
  2. el:"#app",
  3. data(){
  4. return{
  5. msg:"hello!子组件"
  6. }
  7. },
  8. components:{
  9. boyComponent
  10. }
  11. })

在子组件中用props(固定的)来接收:

  1. const boyComponent={
  2. props:["msg"],
  3. template:`<div>{{msg}}</div> `,
  4. }

我们在组件中绑定并运行:

  1. <div id="app">
  2. <boy-component :msg="msg"></boy-component>
  3. </div>


二、子组件向父组件传值

子组件向父组件传参是通过声明同名事件来实现,$emit(父组件中要使用的方法名称,子组件要传给父组件的值 )
例如:

  1. let boyComponent = {
  2. \\固定使用$emit(),参数是:父组件要使用的方法名,和要传给父组件的值
  3. template:`<button @click="$emit('child',info)">发送</button>`,
  4. data(){
  5. return{
  6. info:"hello!父组件"
  7. }
  8. },
  9. }

然后在Vue实例中写一个接受函数:

  1. let app=new Vue({
  2. el:"#app",
  3. components:{
  4. boyComponent
  5. },
  6. methods:{
  7. accept:function(info){
  8. console.log(info)
  9. }
  10. }
  11. })

调用组件并运行:

  1. <div id="app">
  2. <boy-component @child="accept"></boy-component>
  3. </div>

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议