文档中v-on:update:title="doc.title = $event"中$event是什么?

vue文档中有这么一句
bVbhYRB?w=593&h=248

中$event是事件对象吗?doc.title是什么数据类型?不是字符串吗?为什么能接受一个对象?很晕。。。

阅读 3.9k
2 个回答

有的时候用一个事件来抛出一个特定的值是非常有用的。例如我们可能想让 <blog-post> 组件决定它的文本要放大多少。这时可以使用 $emit 的第二个参数来提供这个值:

<button v-on:click="$emit('enlarge-text', 0.1)">
  Enlarge text
</button>

然后当在父级组件监听这个事件的时候,我们可以通过 $event 访问到被抛出的这个值

<blog-post
  ...
  v-on:enlarge-text="postFontSize += $event"
></blog-post>

vue的字符串模板中直接用$event是取$emit传递的第一个参数等同

@update:title="(newTitle) => doc.title = newTitle"

你可以看到上一句update:title传递出来的第一个参数是个字符串,所以这样写其实是没问题的,但文档这样写的确容易造成理解歧义

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏