企业网站定制开发聊聊vue3的defineProps、defineEmits、defineExpose

企业网站定制开发最近在开发中用到了vue3的defineProps、defineEmits和defineExpose,企业网站定制开发感觉发现新大陆一般,企业网站定制开发所以利用闲碎时间对这三个方法做个总结。

defineProps

const props = defineProps<{   foo: String,   bar?: Number}>()
  • 1
  • 2
  • 3
  • 4

defineProps 是的写法并且是一个仅 <script setup> 中可用的编译宏命令,并不需要显式地导入;在vue3的非语法糖setup和在vue2中的写法是 props
defineProps的大部分用法是进行父子组件传值。

注意:() 宏中的参数不可以访问 <script setup>中定义的其他变量,因为在编译时整个表达式都会被移到外部的函数中。

实例:父组件传值给子组件
父组件通过将值传递给子组件,子组件通过defineProps进行接收,子组件点击后将接收到的值 alert 出来
结果:

defineEmits

const emit = defineEmits<{(e: 'submit', num: number): void}>()
  • 1
  • 2
  • 3

defineEmitsdefineProps 一样也是仅用于 <script setup> ,并且不需要导入;在vue3的非语法糖setup中的写法是 emits
defineEmits 的不同点在于,组件要触发的事件可以显式地通过 defineEmits() 宏来声明。

注意:如果一个原生事件的名字 (例如 click) 被定义在 emits 选项中,则监听器只会监听组件触发的 click 事件而不会再响应原生的 click 事件。

实例:子组件触发父组件的的事件,并且进行传值。
子组件通过触发父组件的 submit 事件,并且将参数6666传递到父组件。

结果:

defineExpose

const isShow = ref<boo(false)defineExpose({ // 宏来显示指定组件中属性暴露出去  isShow,});
  • 1
  • 2
  • 3
  • 4

在使用 <script setup> 的时候,组件的实例是默认关闭的不能够通过模板引用或者$parent 进行被访问的。

通过 defineExpose 可宏来显式指定在 <script setup> 组件中要暴露出去的属性。

实例:向外暴露属性,被使用。
组件向外暴露了 isShow 属性值,当被点击时可以被访问到。

结果:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发