vue中文官网事件处理 | Vue.js (vuejs.org)
我在官网基础上,添加些代码,方便初学者学习,能够快速理解官网内容,掌握自己所需要的知识,以便节省宝贵的时间。
事件处理
监听事件
我们可以使用 v-on 指令 (简写为 @) 来监听 DOM 事件, 并在事件触发时执行对应的 JavaScript。用法:v-on:click="handler" 或 @click="handler"。
事件处理器 (handler) 的值可以是:
1、内联事件处理器:事件被触发时执行的内联 JavaScript 语句 (与 onclick 类似)。
2、方法事件处理器:一个指向组件上定义的方法的属性名或是路径。
内联事件处理器
内联事件处理器通常用于简单场景,例如:
演示代码:
js 代码:
const count = ref(0)
template 代码:
<button @click="count++">Add 1</button>
<p>Count is: {
{ count }}</p>
演示结果:

方法事件处理器
举例来说:
演示代码:
js 代码:
const name = ref('Vue.js')
let say = ref('')
let eventName= ref('')
function greet(event) {
say.value=`Hello ${name.value}!`
// `event` 是 DOM 原生事件
if (event) {
eventName=event.target.tagName
}
}
template 代码:
<button @click="greet">greet()</button>
<li>{
{say}}</li>
<li>{
{eventName}}</li>
演示结果:

方法与内联事件判断
模板编译器会通过检查 v-on 的值是否是合法的 JavaScript 标识符或属性访问路径 来断定是何种形式的事件处理器。 举例来说,foo、foo.bar 和 foo['bar'] 会被视为方法事件处理器, 而 foo() 和 count++ 会被视为内联事件处理器。
在内联处理器中调用方法
除了直接绑定方法名,你还可以在内联事件处理器中调用方法。 这允许我们向方法传入自定义参数以代替原生事件:
演示代码:
js 代码:
const sayText = ref('')
function say(message) {
if (message) {
sayText.value =""
if(message === 'hello'){
sayText.value="hello,how are you"
}else {
sayText.value="good bye"
}
}
}
template 代码:
<button @click="say('hello')">Say hello</button>
<button @click="say('bye')">Say bye</button>
<table>{
{sayText}}</table>
演示结果:

在内联事件处理器中访问事件参数
有时我们需要在内联事件处理器中访问原生 DOM 事件。 你可以向该处理器方法传入一个特殊的 $event 变量,或者使用内联箭头函数:
演示代码:
js 代码:
const warnText = ref("")
function warn(message, event) {
// 这里可以访问原生事件 warnText.value=event.target.innerText+":"+message
}
template 代码:
<button @click="warn('Form cannot be submitted yet.', $event)">
Submit
</button>
<!-- 使用内联箭头函数, event1自定义变量接受事件变量-->
<button @click="(event1) => warn('Form cannot be submitted yet. 01', event1)">
Submit01
</button>
<table>{
{warnText}}</table>
演示结果:

最低0.47元/天 解锁文章
940

被折叠的 条评论
为什么被折叠?



