props中定义onChange和在emits中定义change的区别

来源:4-4 开始实现SchemaForm

PARADISELIN

2022-04-03

(还没看后续章节)

本节中给 ScehmaForm 定义了一个 onChange 的属性,请问jocky老师,这里是不是用emits也可以:

export default defineComponent({
  name: 'SchemaForm',
  emits: ['change']
  // ...
})

然后在使用时:

<SchemaForm onChange={handleChange}>

对于 React 来说传递函数属性是一件自然而然的事情,但是在Vue项目中又多个emits,感觉不知如何选择,或者这两种传递onChange的方式在 Vue 项目有没有比较明显却别或者讲究呢?

写回答

1回答

Jokcy

2022-04-16

两者没有什么本质区别,你选择哪个都不会有什么大的问题,但也就像我视频里讲的,我推荐能用props都用props,因为具有统一的范式,另外props可以直接作为变量向下传递,而用事件,你需要在每个组件内做事件监听并向上传递

0
0

Vue3.0+TS打造企业级组件库 前端中高级开发者必修课

深度匹配高级前端工程师用人需求 打造属于你自己的开源项目

1310 学习 · 250 问题

查看课程