返回

Vue3.0商店后台管理系统项目实战-事件的模板语法

发布时间:2022-11-08 15:16:18 310
# javascript# 前端# vue.js# java# 数据

v-on:事件名=“事件方法” 绑定事件

1:点击事件

<template>
<div class="about">

<div id="dom">{{ msg }}</div>
<!-- v-on:事件名=“事件方法” 绑定事件 -->
<!-- 事件及其方法直接声明在 setup 内 -->
<button v-on:click="handClick">click me</button>
</div>
</template>

<script>
import {
reactive,
toRefs,
onBeforeMount,
onMounted,
onBeforeUpdate,
onUpdated,
} from "vue";

export default {
setup() {
const data = reactive({
msg: "你好",
});

//事件及其方法
const handClick=()=>{
alert("你好")
}

return {
...toRefs(data),
handClick
};
},
};
</script>

点击按钮 弹出弹框

2:input事件
双向绑定的模板语法
v-model

数据跟输入框是双向绑定的
在输入框里面边输入
数据也一起跟着改变
反之也是一样的

<template>
<div class="about">
<input type="text" placeholder="请输入姓名" v-model="userName" />
<textarea
placeholder="请输入你的建议"
cols="30"
rows="10"
v-model="uesrInput"
></textarea>
<p>{{ userName }}-----{{ uesrInput }}</p>
<button>提交</button>
</div>
</template>

<script>
import {
reactive,
toRefs,

} from "vue";

export default {
setup() {
const data = reactive({
userName: "",
uesrInput: "",
});

return {
...toRefs(data),
};
},
};
</script>

 

 

 

Vue3.0商店后台管理系统项目实战-事件的模板语法_vue.js

 

<template>
<div class="about">
<input type="text" placeholder="请输入姓名" v-model="userName" />
<textarea
placeholder="请输入你的建议"
cols="30"
rows="10"
v-model="uesrInput"
></textarea>
<p>{{ userName }}-----{{ uesrInput }}</p>
<button @click="submit">提交</button>
</div>
</template>

<script>
import { reactive, toRefs } from "vue";

export default {
setup() {
const data = reactive({
userName: "",
uesrInput: "",
});

//事件及其方法
const submit = () => {
alert(`${data.userName}的建议是${data.uesrInput}`);
};

return {
...toRefs(data),
submit,
};
},
};
</script>

 

Vue3.0商店后台管理系统项目实战-事件的模板语法_前端框架_02

 

input : 输入事件
blur: 失去焦点
focus:获取焦点
change: 内容更改

当鼠标点击输入框的时候 获取焦点
鼠标移出输入框的时候 失去焦点

 

<template>
<div class="about">
<input type="text" placeholder="请输入姓名" v-model="userName" />
<input
type="text"
placeholder="请输入电话"
v-model="userPhone"
@focus="handleFocus"
@blur="handleBlur"
/>
<textarea
placeholder="请输入你的建议"
cols="30"
rows="10"
v-model="uesrInput"
></textarea>
<p>{{ userName }}-----{{ uesrInput }}</p>
<button @click="submit">提交</button>
</div>
</template>

<script>
import { reactive, toRefs } from "vue";

export default {
setup() {
const data = reactive({
userName: "",
uesrInput: "",
});

//事件及其方法
const submit = () => {
alert(`${data.userName}的建议是${data.uesrInput}`);
};

const handleFocus = () => {
console.log("获取焦点");
};

const handleBlur = () => {
//在失去焦点的时候判断内容是否为空
console.log("失去焦点");
};

return {
...toRefs(data),
submit,
handleFocus,
handleBlur,
};
},
};
</script>
 

 

 

Vue3.0商店后台管理系统项目实战-事件的模板语法_javascript_03

 

手机号码验证

 

<template>
<div class="about">
<input type="text" placeholder="请输入姓名" v-model="userName" />
<input
type="text"
placeholder="请输入电话"
v-model="userPhone"
@focus="handleFocus"
@blur="handleBlur"
@input="handleInput"
@change="handleChange"
/>
<textarea
placeholder="请输入你的建议"
cols="30"
rows="10"
v-model="uesrInput"
></textarea>
<p>{{ userName }}-----{{ uesrInput }}</p>
<button @click="submit">提交</button>
</div>
</template>

<script>
import { reactive, toRefs } from "vue";

export default {
setup() {
const data = reactive({
userName: "",
uesrInput: "",
});

//事件及其方法
const submit = () => {
alert(`${data.userName}的建议是${data.uesrInput}`);
};

const handleFocus = () => {
console.log("获取焦点");
};

const handleBlur = () => {
//在失去焦点的时候判断内容是否为空
// if (!data.userPhone) {
// alert("手机号必填");
// }
console.log("失去焦点");
};

const handleInput = () => {
//在输入的时候正则验证手机号
return
if (!/^[1][3,4,5,6,7,8][0-9]{9}$/.test(data.userPhone)) {
console.log("手机号输入不正确");
} else {
console.log("手机号输入正确");
}
};

const handleChange = () => {
//在输入的时候正则验证手机号

if (!/^[1][3,4,5,6,7,8][0-9]{9}$/.test(data.userPhone)) {

console.log("手机号输入不正确");
} else {
console.log("手机号输入正确");
}
};

return {
...toRefs(data),
submit,
handleFocus,
handleBlur,
handleInput,
handleChange,
};
},
};
</script>
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线