























这是一个创建于 178 天前的主题,其中的信息可能已经有所发展或是发生改变。
如题,问了 gemini ,发现答案胡扯的,gemini 说写 onclick 不会触发 vue 响应式( ref 元素修改),但是我实测在 div 上写:onclick 确实能触发响应式修改,所以我有点纳闷,这两种写法到底有什么区别
1 BruceXu 2025 年 12 月 19 日我的 AI 解释得很清楚,可惜没法贴给你. 简单来说,前者是原生 html 的事件,后者是 vue 的事件.和响应式是两码事,都能触发. 一般是推荐用后者,走 vue 指令系统,可以多一些功能. |
2 hengshenyu 2025 年 12 月 19 日 via Android:onClick 吧? vue 支持将事件已 props 的形式传递(声明也是),onXxx = @xxx |
3 jspatrick 2025 年 12 月 19 日在 jsx 或 tsx 里只有 onClick 可以用,@click 是 onClick 的简写,vue 的 template 里一般用简写,响应式只跟定义的响应式变量有关,跟函数如何绑定无关,任意函数都可以触发响应式 |
6 kakakakaka8889 2025 年 12 月 19 日没啥区别啊,@click 只是一个语法糖就是简化的 onClick 写法而已 |
8 FakerLeung 2025 年 12 月 19 日 |
13 DICK23 2025 年 12 月 19 日vue 上应该是一致的,solidjs 中这两个写法一个是原生事件,一个是合成事件 |
14 xiaoxi123 2025 年 12 月 19 日还是 微优易 黑魔法多啊🤔 |
15 rich1e 2025 年 12 月 19 日其实楼上有几位的回答,基本都对上了,总结一下就是: @click 是 Vue 封装的指令,是特有的语法糖。 - 在 .vue 文件的 <template> 里面直接使用; onclick 属于 HTML 规范,跟 Vue 没关系。即便没有 Vue ,onclick 也可以工作。 多说一句,onclick 不是 onClick 。 如果想在 Vue 里面使用 onClick ,一般是指使用 jsx 编写代码,文件后缀通常为 jsx/tsx 。 当然,.vue 文件也可以写 jsx ,需要声明 `<script lang="jsx">` 或者 `<script lang="tsx">`。 PS:JSX (JavaScript XML) 是 JavaScript 的一种语法扩展,它允许你在 JS 代码中写出类似 HTML/XML 的结构化标记。 |
16 Wanex 2025 年 12 月 19 日没区别,@click 就是 onclick 的语法糖 |
17 gotOwt 2025 年 12 月 19 日 |
22 AsuraTG 2025 年 12 月 19 日### 最佳实践建议 1. 代码风格一致性 :保持所有事件绑定都走 Vue 的系统。 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。