当前位置: 首页> 科技> 能源 > Vue3:【props、emit 和 components】 在 setup 语法糖和非语法糖中的使用

Vue3:【props、emit 和 components】 在 setup 语法糖和非语法糖中的使用

时间:2025/7/15 9:08:10来源:https://blog.csdn.net/weixin_52268321/article/details/140888137 浏览次数:0次

目录

  • 1 props
    • 1.1 setup 语法糖
    • 1.2 非语法糖
  • 2 emit
    • 2.1 setup 语法糖
    • 2.2 非语法糖
  • 3 components 组件
    • 3.1 语法糖
    • 3.2 非语法糖

1 props

1.1 setup 语法糖

<script lang="ts" setup>interface PersionItem {id: numbervalue: numberimageSrc: stringlabel: string
}
const props = defineProps({personData: {type: Array as () => PersionItem[],default: () => []}
})console.log(props.personData)

1.2 非语法糖

<script lang="ts">interface Option {imageSrc: StringfileName: StringmodifierInfo: Stringpath: Stringorigin: String
}
export default {props: {listData: {type: Array as () => Option[],default: () => []}},setup(props, { emit }) {console.log(props.listData)return {}}
}
</script>

2 emit

2.1 setup 语法糖


<script lang="ts" setup>
import { defineEmits } from 'vue'
// 定义
const emit = defineEmits(['checkPerson'])const check = () => {emit('checkPerson', personID.value)
}
</script>

2.2 非语法糖

<script lang="ts">
export default {emits: ['focusEvent', 'blurEvent'],setup(props, { emit }) {// const emit = defineEmits(['debouncedInput', 'focusEvent', 'blurEvent'])// 获得焦点事件const focusFn = () => {emit('focusEvent')}// 失去焦点事件const blurFn = () => {emit('blurEvent')}return {  focusFn, blurFn }}
}
</script>

3 components 组件

3.1 语法糖

引入后直接用

3.2 非语法糖

<script lang="ts">
import fileNameItem from './fileNameItem.vue'export default {// 局部注册组件components: {fileNameItem},setup(props, { emit }) {return {}}
}
</script>
关键字:Vue3:【props、emit 和 components】 在 setup 语法糖和非语法糖中的使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: