vue封装组件

父组件

<template>
   <view>
      <assembly @submitToParent="submitToParent">
         <template v-slot:content>
            <p>插槽内容</p>
        </template>
      </assembly>
   </view>
</template>

<script>
import assembly from "./component/assembly";
export default {

   data() {
      return {
         
      };
   },

   

   methods: {
      submitToParent(data){}
   },
   components:{
      assembly
   }
};
</script>

<style lang="less" >

</style>

 

子组件

 

<template>
   <view>
      <view>头部</view>
	  <!-- 定义插槽 -->
      <slot name="content"></slot>
	  
      <view>底部</view>
   </view>
</template>

<script>
export default {
	props:{
		A: Number,  // 基础类型检测 (`null` 意思是任何类型都可以)
		B: [String, Number,Array, Object,Boolean],   // 多种类型
		
		C: {  // 必传且是字符串
	      type: String,
	      required: true
		},
		
		D: {   // 数字,有默认值
		    type: Number,
		     default: 100
		},
		
		E: {   // 数组/对象的默认值应当由一个工厂函数返回
		  type: Object,
		  default: function () {
			return { message: 'hello' }
		  }
		},
		F: {   // 自定义验证函数
		  validator: function (value) {
			return value > 10
		  }
		}
	},
   data() {
      return {
         
      };
   },


   methods: {
      handleSubmit(data){
            this.$emit('submitToParent', data)
        }
   },
};
</script>

<style >

</style>

 

posted @ 2022-04-27 15:59  雨落风  阅读(60)  评论(0编辑  收藏  举报