自定义表单组件双向数据绑定
<input v-model="message">
message <-> value
<input :value="message" @input="(event)=>message = event.target.value">
方法一
CustomInput
props:['modelValue']
<template>
<input :value="modelValue" @input="$emit('update:modelValue', event.target.value)">
</template>
<custom-input v-model="message"></custom-input>
方法二
CustomInput
props:['modelValue']
computed:{
msgValue:{
get(){
return this.modelValue
}
set(value){
this.$emit('update:modelValue',value)
}
}
}
<template>
<input class='c2 c1' v-model="msgValue">
</template>
<custom-input v-model="message"></custom-input>
透传attribute
<custom-input class='c1'></custom-input>
插槽(slot)
一、 插槽是什么及基础使用 插槽使用条件:
- 父子组件之间
- 子组件定义插槽
<slot></slot> - 父组件定义插槽内容
<template v-slot="default"> 内容 </templae>
二、具名插槽
- 插槽设定名称
- 父组件根据名称放内
三、作用域插槽
插槽传参
- 子组件中slot插槽标签绑定属性
- 父组件使用插槽处接收属性
四、v-slot指令简写 #
使用: 子组件中定义数据 商品列表数据
在父组件中定义界面 界面效果
-
父子组件之间使用
-
子组件定义插槽
<slot name="tree"></slot> 父组件定义插槽内容 <cusom-input > <template #tree="slotTree"> {{slotTree.list}} </templage> </custom-input> -
作用域插槽
动态组件
通过点击事件确定组件
<component :is=""></component>
4.input双向数据绑定