props传参简单使用

1.子给父传

子传

<script>
export default {
  data() {
    return {
       drawer: false,
        form: {
          region: '',
          region1:'',
        }
      }
    },
     methods: {
      onSubmit(){
        console.log(this.form)
        //子向父传数据
        this.$emit('onSubmit', this.form)
      },
    
    }
  }

</script>

父接收

<template>
  <div class="output">
//@onSubmit为子组件传的,onSubmit为当前页面用的
   <mainn @onSubmit="onSubmit"></mainn>
  </div>
</template>

<script>
//引入子组件
import mainn from '../components/mainn.vue'
export default {
//注册
 components:{mainn},
 methods: {
//参数data为子传来的参
   onSubmit(data) {
     console.log(data)
   }
 }
}
</script>

2.父给子传

父传

<template>
  <div class="output">
    //:msg="msg"   :msg为传给子组件的属性,msg为父组件data中的msg
   <mainn :msg='msg'></mainn>
  </div>
</template>

export default {
 components:{mainn},
 data() {
   return {
//传的数据
     msg:'szz'
   }
 },

子接受

//接收
export default {
 props:['msg'],
}
//使用
<template>
  <div>{{msg}}
  </div>
</template>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中,插槽是一种占位符,可以在父组件中定义,然后在子组件中使用使用插槽可以让父组件向子组件传递内容。 使用插槽的步骤如下: 1. 在父组件中定义插槽。可以使用`<slot>`元素来定义插槽,也可以使用具名插槽来定义不同的插槽。 ```html <!-- 父组件中定义插槽 --> <template> <div> <slot></slot> <slot name="header"></slot> <slot name="footer"></slot> </div> </template> ``` 2. 在子组件中使用插槽。可以使用`<slot>`元素来使用默认插槽,也可以使用`<slot>`元素的`name`属性来使用具名插槽。 ```html <!-- 子组件中使用插槽 --> <template> <div> <!-- 使用默认插槽 --> <slot></slot> <!-- 使用具名插槽 --> <slot name="header"></slot> <slot name="footer"></slot> </div> </template> ``` 3. 在父组件中向插槽传递内容。可以在插槽元素中放置内容,这些内容会被传递到子组件中。 ```html <!-- 父组件中向插槽传递内容 --> <template> <div> <!-- 向默认插槽传递内容 --> <my-component> <p>这是默认插槽的内容</p> </my-component> <!-- 向具名插槽传递内容 --> <my-component> <template v-slot:header> <h1>这是头部插槽的内容</h1> </template> <template v-slot:footer> <p>这是底部插槽的内容</p> </template> </my-component> </div> </template> ``` 在父组件中向插槽传递参数也很简单,只需要在插槽元素上使用`v-bind`指令来传递参数即可。 ```html <!-- 父组件中向插槽传递参数 --> <template> <div> <my-component> <!-- 向默认插槽传递参数 --> <template v-slot:item="props"> <p>{{props.index}} - {{props.value}}</p> </template> <!-- 向具名插槽传递参数 --> <template v-slot:header="{title}"> <h1>{{title}}</h1> </template> </my-component> </div> </template> ``` 在子组件中可以通过`$slots`属性来访问插槽内容和参数。 ```js // 子组件中访问插槽内容和参数 export default { mounted() { console.log(this.$slots) console.log(this.$slots.default[0].text) console.log(this.$slots.item[0].data.attrs.index) console.log(this.$slots.header[0].componentOptions.propsData.title) } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值