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

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

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>

<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>

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>

手机号码验证

<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>
相关文章
Vue3.0商店后台管理系统项目实战-模板语法
Vue3.0商店后台管理系统项目实战-模板语法
100 1
|
5月前
|
开发框架 前端开发 JavaScript
在Vue前端项目中,附件展示的自定义组件开发
在Vue前端项目中,附件展示的自定义组件开发
在Vue前端项目中,附件展示的自定义组件开发
|
5月前
|
开发框架 移动开发 前端开发
在微信框架模块中,基于Vue&Element前端的后台管理功能介绍
在微信框架模块中,基于Vue&Element前端的后台管理功能介绍
|
5月前
|
开发框架 前端开发 JavaScript
在微信框架模块中,基于Vue&Element前端的事件和内容的管理
在微信框架模块中,基于Vue&Element前端的事件和内容的管理
|
5月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(28)--- 附件内容的管理
循序渐进VUE+Element 前端应用开发(28)--- 附件内容的管理
|
6月前
|
JavaScript 前端开发 API
【vue实战项目】通用管理系统:学生列表
【vue实战项目】通用管理系统:学生列表
83 2
|
6月前
|
缓存 JavaScript
【vue实战项目】通用管理系统:首页
【vue实战项目】通用管理系统:首页
47 2
|
7月前
|
JavaScript Java 测试技术
基于vue和微信小程序的校园自助打印系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于vue和微信小程序的校园自助打印系统+springboot+vue.js附带文章和源代码设计说明文档ppt
101 7
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电影订票互动系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电影订票互动系统附带文章和源代码部署视频讲解等
26 1
|
缓存 JavaScript 前端开发
Vue 轻量级后台管理系统基础模板
Vue 轻量级后台管理系统基础模板
135 1

热门文章

最新文章