当前位置: 首页 > wzjs >正文

宜春建设局官方网站北京轨道交通建设公司网站

宜春建设局官方网站,北京轨道交通建设公司网站,app营销模式有哪些,湖北勘察设计协会一、语法(props) 第一步&#xff1a;在组件模板表达式中&#xff0c;可以直接用$emit()方法触发自定义事件&#xff0c; <!-- MyComponent --> <button click"$emit(someEvent)">Click Me</button> 第二步父组件可以通过 v-on (缩写为 ) 来监听…

一、语法(props)

第一步:在组件模板表达式中,可以直接用$emit()方法触发自定义事件,

<!-- MyComponent -->
<button @click="$emit('someEvent')">Click Me</button>

第二步父组件可以通过 v-on (缩写为 @) 来监听事件:

<MyComponent @some-event="callback" />//组件的事件监听器也支持 .once 修饰符:
<MyComponent @some-event.once="callback" />
注意:

1.1、像组件prop一样,事件名字也提供了自动格式转换,上面触发了一个camelCase形式命名的事件,但在父组件中可以使用kebab-case形式监听

1.2、和原生 DOM 事件不一样,组件触发的事件没有冒泡机制。你只能监听直接子组件触发的事件。平级组件或是跨越多层嵌套的组件间通信,应使用一个外部的事件总线,或是使用一个全局状态管理方案(vuex)。

二、事件参数

// 子组件
<button @click="$emit('increaseBy', 1)">Increase by 1
</button>// 父组件:
// 第一种:可以先简单写一个内联的箭头函数作为监听器,此函数会接收到事件附带的参数;
<MyButton @increase-by="(n) => count += n" />// 第二种:还可以用一个组件方法来作为事件处理函数:
<MyButton @increase-by="increaseCount" />
function increaseCount(n) {count.value += n
}
注意:

       所有传入 $emit() 的额外参数都会被直接传向监听器。举例来说,$emit('foo', 1, 2, 3) 触发后,监听器函数将会收到这三个参数值。

二、声明触发事件

组件可以显式地通过 defineEmits() 宏来声明它要触发的事件:

<script setup>defineEmits(['inFocus', 'submit'])
</script>
注意:

      1. 我们在 <template> 中使用的 $emit 方法不能在组件的 <script setup> 部分中使用,但 defineEmits() 会返回一个相同作用的函数供我们使用:

<script setup>
const emit = defineEmits(['inFocus', 'submit'])function buttonClick() {emit('submit')
}
</script>

        2. defineEmits() 宏不能再子函数中使用,必须在<script setup>的顶级作用域下

        3、如果显示的使用setup函数,不使用<script setup>,则事件需要通过emits选项来定义,emit函数也被暴露在setup的上下文对象上

export default {
  emits: ['inFocus', 'submit'],
  setup(props, ctx) {
    ctx.emit('submit')
  }
}

  3、emits 选项和 defineEmits() 宏还支持对象语法

四、事件校验

        和对 props 添加类型校验的方式类似,所有触发的事件可以使用对象形式描述

        要为事件添加校验,那么事件可以被赋值为一个函数,接受的参数就是抛出事件时传入 emit 的内容,返回一个布尔值来表明事件是否合法。

<script setup>
const emit = defineEmits({// 没有校验click: null,// 校验 submit 事件submit: ({ email, password }) => {if (email && password) {return true} else {console.warn('Invalid submit event payload!')return false}}
})function submitForm(email, password) {emit('submit', { email, password })
}
</script>

http://www.dtcms.com/wzjs/829161.html

相关文章:

  • 典型的网站案例温州做网站厉害的公司有哪些
  • 什么网站是专门做艺术字的自己可以做类似淘宝客网站吗
  • 如何免费建网站赚钱淘气堡网站建设
  • 网站空间和服务器揭阳高端网站建设价格
  • 网站错误代码301盐城网站优化方案
  • 辽源网站建设如何提高网站访问速度的文章
  • 我想在泉州做网站站长之家网页模板
  • 襄阳网站seo技巧建设电子商务网站的试卷
  • 大连网站公司设计网络上做广告最好怎么做
  • 成都网站制作成都网站制作郑州市建设教育协会网站
  • 网站编辑电子商务网站运营专员什么网站专做外贸
  • 做一个网站服务器外包工好还是派遣工好
  • 织梦网站logo修改万网域名中文网站查询
  • 都有什么类别的网站敬请期待图片素材
  • 好的响应式网站有哪些莱芜户型优化培训
  • 英文网站排名优化定制开发生产管理软件推荐
  • 重庆网站备案注销网站推广 教程
  • 安装建设手机银行移动门户网站公司名字大全参考2023
  • 做网站要会什么做网站学的是代码吗
  • 鹏达建设集团有限公司网站软件界面设计的标准是什么
  • 金启网站建设医院网站需要前置审批
  • 网站建设服务公司有哪些为什么装修公司建议半包
  • 网站统计付费千万别学服装设计
  • 求职网站的建设方案凡科网的网站免费的可以用吗
  • 网站开发项目推荐保定网站免费制作
  • 网站建设策划书模板网络营销中seo是什么意思
  • 网站关键词优化遇到的情况和解决方法淘宝开店后怎么运营
  • html5做旅游网站建站工具官网
  • 怎么做一元抢购网站服装定制图案
  • 珠海公司做网站开发一个网站需要多久