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

做期货看资讯什么网站好一键优化清理加速

做期货看资讯什么网站好,一键优化清理加速,对政府网站建设的几点要求,广州最新进展目录 前言 一、基本语法 1. 子组件触发 2. 父组件监听 二、 事件参数 1. 传值 2. 接收值 三、 事件校验 四、注意事项 前言 组件事件是 Vue 组件之间进行通信的一种方式。它允许一个组件触发一个自定义事件,并且其他组件可以监听并响应这个事件。 一、基本…

目录

前言

一、基本语法

1. 子组件触发

2. 父组件监听

二、 事件参数

1. 传值

2. 接收值

三、 事件校验

四、注意事项


前言

组件事件是 Vue 组件之间进行通信的一种方式。它允许一个组件触发一个自定义事件,并且其他组件可以监听并响应这个事件。

一、基本语法

1. 子组件触发

子组件触发自定义的事件有两种方式。

  • 模板表达式中

在组件的模板表达式中,可以直接使用 $emit 方法触发自定义事件,例如:

<!-- SonCom -->
<button @click="$emit('someEvent')">click me</button>
  • <script setup> 里

显式地通过 defineEmits() 宏来声明它要触发的事件。注意,defineEmits只等在<script setup> 的顶级作用域下使用,不能在别的函数里。

科普一下:在计算机编程中,宏(Macro)通常是一种预处理指令或代码片段,用于在编译过程之前进行文本替换和代码生成。宏可以帮助简化代码编写、提高代码的复用性和可维护性。

然后使用defineEmits() 返回的跟模板里面的 $emit 相同作用的函数来触发。

<script setup>
// 声明
const emit = defineEmits(['touchFather', 'submitFather'])// 触发
function buttonClick() {emit('touchFather')
}
</script>
  • 非 <script setup> 里

事件需要通过 emits 选项来定义,emit 函数也被暴露在 setup() 的上下文对象上。

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

2. 父组件监听

和Vue2一样,父组件可以通过 v-on (缩写为 @) 来监听事件:

<SonCom @some-event="callback" />

ps:事件名可以用驼峰形式,但是在模板中是推荐使用kebab-case 形式来编写。

二、 事件参数

如果我们需要再触发事件的时候给父组件传特定的值,就可以提供给 $emit 额外的参数。

1. 传值

  • 模板里传值
<button @click="$emit('chooseA', 1)">chooseA
</button>
  • script里传值
<script setup>
// 声明
const emit = defineEmits(['touchFather', 'submitFather'])// 触发并传值
function buttonClick() {emit('touchFather', num)
}
</script>

所有传入 $emit() 或 emit() 的额外参数都会传过去,传参不限制个数。

2. 接收值

  • 模板里接收值
<SonCom @touch-father="(num) => count = num" />
  • 方法里接收值
<SonCom @touch-father="handleNum" /><script>function handleNum(num) {count.value += num}
</script>

三、 事件校验

事件也可以像Props一样来进行校验。只需要将上面的数组换成对象。对象里事件被赋值为一个函数。接受的参数就是抛出事件时传入 emit 的内容,返回一个布尔值来表明事件是否合法。

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

示例:

子组件:校验并且传参不符合校验规则

<template><div><button @click="submitForm">子传父</button></div>
</template><script setup>const obj = {email: '',password: ''}const emit = defineEmits({// 没有校验touchFather: null,// 校验 submitFather 事件submitFather: ({ email, password }) => {if (email && password) {return true}console.log('传参无效!')return false}})function submitForm() {emit('submitFather', obj)}
</script>

父组件:

<template><div><ChildComponent @submit-father="handle" /></div>
</template><script setup>import ChildComponent from './ChildComponent.vue'function handle({ email, password }) {console.log('父组件——', email, password)}
</script>

运行结果:

传参失败,并且Vue报错。

如果给obj值通过校验:

<template><div><button @click="submitForm">子传父</button></div>
</template><script setup>const obj = {email: 123,password: 123}const emit = defineEmits({// 没有校验touchFather: null,// 校验 submitFather 事件submitFather: ({ email, password }) => {if (email && password) {return true}console.log('传参无效!')return false}})function submitForm() {emit('submitFather', obj)}
</script>

结果:

四、注意事项

1. 组件触发的事件没有冒泡机制

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

http://www.ds6.com.cn/news/3140.html

相关文章:

  • 哪些网站可以做ppi郑州关键词优化顾问
  • 免费app软件下载网站官方正版清理优化工具
  • 河北建网站网站流量统计分析报告
  • su搜索引擎优化成都seo的方法
  • oracle数据库网站开发搜索引擎关键词排名优化
  • 朝阳区建设委员会网站网络营销收获与体会
  • 美工所需要的网站武汉百度seo排名
  • 定制型网站开发百度网页提交入口
  • 学校网站怎么做优化佛山网站开发公司
  • 网站seo工作内容免费广告推广
  • 今日云南昆明疫情最新消息深圳网站营销seo电话
  • 做赛事下注网站违法吗今日国内新闻头条15条
  • 网站备案信息传营销策略有哪些方法
  • 对网络营销的认识有哪些杭州seo网络推广
  • 扬州做机床公司网站济南网站优化公司排名
  • 在哪个网站做任务赚钱seo顾问合同
  • 猜艺士科技网站建设网站如何优化排名软件
  • 广东网站备案时间青岛关键词推广seo
  • 茶叶手机网站百度地图网页版进入
  • 小学生做网站软件苏州百度关键词优化
  • 做网站需要独立显卡吗互联网推广软件
  • 网站后台管理需求seo搜索引擎优化工具
  • 给甜品网站做seo网站推广优化怎样
  • 厦门网站做的比较好网络推广服务费
  • 游戏开发和网站开发那个有前景360关键词排名百度
  • 中国机械加工行业的现状东莞百度seo哪里强
  • 打造品牌建设seo网站内容优化有哪些
  • 做餐饮公司网站农村电商平台
  • 宁波个人网站建设搜索引擎优化工作
  • 毕设什么类型网站容易做重庆小潘seo