什么是指令修饰符?
指令修饰符就是通过“.”指明一些指令后缀 不同的后缀封装了不同的处理操作 —> 简化代码
按键修饰符
-
@keyup.enter —>当点击enter键的时候才触发
v-model修饰符
-
v-model.trim —>去除首位空格
-
v-model.number —>转数字
事件修饰符
-
@事件名.stop —> 阻止冒泡
-
@事件名.prevent —>阻止默认行为
-
@事件名.stop.prevent —>可以连用 即阻止事件冒泡也阻止默认行为
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue.js 修饰符示例</title><style>body {font-family: Arial, sans-serif;}.container {max-width: 600px;margin: 50px auto;padding: 20px;border: 1px solid #ccc;border-radius: 5px;box-shadow: 0 0 10px rgba(0,0,0,0.1);}input {display: block;margin-bottom: 10px;padding: 8px;width: calc(100% - 16px);border: 1px solid #ccc;border-radius: 4px;}button {padding: 10px 15px;background-color: #007bff;color: white;border: none;border-radius: 4px;cursor: pointer;}button:disabled {background-color: #ccc;cursor: not-allowed;}</style>
</head>
<body><div id="app" class="container"><h1>Vue.js 修饰符示例</h1><h2>v-model 修饰符</h2><input v-model.trim="inputText" placeholder="输入文本,会去除首尾空格"><p>去除空格后的文本: "{{ inputText }}"</p><input v-model.number="inputNumber" placeholder="输入数字,会自动转换为数字"><p>转换后的数字: {{ inputNumber }}</p><h2>事件修饰符</h2><button @click="incrementCounter">点击增加计数</button><button @click="incrementCounterWithStop" @click.stop>点击增加计数(阻止冒泡)</button><button @click="submitForm" @click.prevent>提交表单(阻止默认行为)</button><button @click="customAction" @click.stop.prevent>自定义动作(阻止冒泡和默认行为)</button><p>计数: {{ counter }}</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script><script>new Vue({el: '#app',data: {inputText: '',inputNumber: null,counter: 0},methods: {incrementCounter() {this.counter++;},incrementCounterWithStop() {this.counter++;console.log('事件冒泡被阻止了');},submitForm() {console.log('提交表单');},customAction() {console.log('执行自定义动作,阻止冒泡和默认行为');}}});</script>
</body>
</html>
代码解释:
v-model 修饰符
v-model.trim
: 去除输入框中首位的空格。示例中绑定了inputText
,输入文本会自动去除首尾空格。v-model.number
: 将输入的内容转换为数字。示例中绑定了inputNumber
,输入的值会自动转换为数字。
事件修饰符
@click.stop
: 阻止事件冒泡。incrementCounterWithStop
方法会被调用,但事件不会冒泡。@click.prevent
: 阻止默认行为。submitForm
方法会被调用,但不会触发默认的表单提交行为。@click.stop.prevent
: 阻止事件冒泡并阻止默认行为。customAction
方法会被调用,同时阻止冒泡和默认行为。
效果示例: