在阿里云服务器做淘客网站,注册资金大小对公司有何影响,步骤英文,什么样的网站是一个成功的网站文章目录 props组合式组件 使用script setup \组合式组件 没有使用 script setup\选项式组件 this emits组合式组件 使用script setup \组合式组件 没有使用 script setup\选项式组件 this v-model 组件数据绑定单个model多个model实现 model … 文章目录 props组合式组件 使用script setup \组合式组件 没有使用 script setup\选项式组件 this emits组合式组件 使用script setup \组合式组件 没有使用 script setup\选项式组件 this v-model 组件数据绑定单个model多个model实现 model 修饰符 props
组合式组件 使用script setup
script setup// const props defineProps([title]) // 以数组方式const props defineProps({title: String,}) // 以对象方式声明类型console.log(props.title)
/script
templatespan{{title}}/span
/template组合式组件 没有使用 script setup
scriptexport default{props: [title],setup(props){console.log(props.title);}}
/script选项式组件 this
scriptexport default {props: [foo],created() {// props 会暴露到 this 上console.log(this.foo)}}
/scriptemits
组合式组件 使用script setup
script setupimport {ref} from vueconst formValue ref({})// const emit defineEmits([submit]) // 以数组方式const emit defineEmits({submit(payload: { email: string, password: string }) {//通过返回值为 true 还是为 false 来判断验证是否通过if (email password) {return true} else {console.warn(Invalid submit event payload!)return false}}})// 以对象方式声明类型function buttonClick() {emit(submit, formValue.value)}
/script
templatebutton clickemit(submit, formValue)提交/button
/template组合式组件 没有使用 script setup
scriptexport default{emits: [inFocus, submit],setup(props, ctx) {ctx.emit(submit)}}
/script选项式组件 this
scriptexport default {data: (){return {formValue: {}}},emits: {click: null, // 没有校验// 校验 submit 事件submit: ({ email, password }) {if (email password) {return true} else {console.warn(Invalid submit event payload!)return false}}},methods: {submit() {this.$emit(submit,this.formValue)}},}
/script
templatebutton click$emit(submit, formValue)提交/button
/templatev-model 组件数据绑定
单个model
// Parent.vue
Child v-modelcountModel /// Child.vue
script setupconst model defineModel()function buttonClick() {model.value}
/script
templateinput v-modelmodel /divParent bound v-model is: {{ model }}/div
/template多个model
// Parent.vue
Child v-model:first-namefirstv-model:last-namelast
/// Child.vue
script setupconst firstName defineModel(firstName)const lastName defineModel(lastName)
/script实现 model 修饰符
// Parent.vue
Child v-model.capitalizemyText /// Child.vue
script setupconst [model, modifiers] defineModel({set(value){if(modifiers.capitalize){return value.charAt(0).toUpperCase() value.slice(1)}else{return value}}})
/script
templateinput typetext v-modelmodel /
/template