当前位置: 首页 > news >正文

【vue-2】v-on、v-show、v-if及按键修饰符

目录

1、v-on事件

2、按键修饰符

3、显示和隐藏v-show

4、条件渲染v-if


1、v-on事件

 创建button按钮有以下两种方式:

<button v-on:click="edit">修改</button>
<button @click="edit">修改</button>

完整示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><!-- 插值表达式 -->{{ msg }}<h1>{{web.title}}</h1><h2>{{web.url}}</h2><h1>{{number}}</h1><button v-on:click="edit">修改</button></div><script type="module">import {createApp, reactive, ref} from './vue.esm-browser.js'// const {createApp, reactive} = VuecreateApp({// setup选项,用于设置响应式数据和方法等setup(){const number = ref(10)number.value = 20const web = reactive({title:"开始学习vue啦",url:"vue.com"})const edit = () =>{web.url = "hhahaha"}return{msg:"sucess",web,number,edit}}}).mount("#app")// mount为挂载</script>
</body>
</html>

另:=>是es6中的语法。

举例说明:

(x)=> x + 6

相当于

function(x){return x+6;
}

2、按键修饰符

回车:

回车 <input type="text" @keyup.enter="add(20,50)"> <br>

空格:

空格 <input type="text" @keyup.space="add(10,80)"> <br>

Tab键:

Tab <input type="text" @keydown.tab="add(5,32)"> <br>

按键盘w键:

w <input type="text" @keyup.w="add(8,3)"> <br>

组合键: 

Ctrl+Enter <input type="text" @keyup.ctrl.enter="add(20,50)"> <br>
Ctrl+A <input type="text" @keyup.ctrl.a="add(20,50)"> <br>

 完整示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- <script src="vue.global.js"></script> -->
</head>
<body><div id="app"><!-- 插值表达式 -->{{ msg }}<h1>{{web.title}}</h1><h2>{{web.url}}</h2> <h2>{{web.user}}</h2>回车 <input type="text" @keyup.enter="add(20,50)"> <br>空格 <input type="text" @keyup.space="add(10,80)"> <br>Tab <input type="text" @keydown.tab="add(5,32)"> <br>w <input type="text" @keyup.w="add(8,3)"> <br><!-- 组合键 -->Ctrl+Enter <input type="text" @keyup.ctrl.enter="add(20,50)"> <br>Ctrl+A <input type="text" @keyup.ctrl.a="add(20,50)"> <br></div><script type="module">import {createApp, reactive} from './vue.esm-browser.js'// const {createApp, reactive} = VuecreateApp({// setup选项,用于设置响应式数据和方法等setup(){const web = reactive({title:"开始学习vue啦",url:"vue.com",user:0})const add = (a,b) =>{web.user += a+b}return{msg:"sucess",web,add}}}).mount("#app")// mount为挂载</script>
</body>
</html>

3、显示和隐藏v-show

实现的功能:当web.title为False,隐藏内容;当为True,显示内容。 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- <script src="vue.global.js"></script> -->
</head>
<body><div id="app"><!-- 插值表达式 --><h1>{{web.title}}</h1><p v-show="web.title">显示的内容</p><button @click="show">切换显示状态</button></div><script type="module">import {createApp, reactive} from './vue.esm-browser.js'// const {createApp, reactive} = VuecreateApp({// setup选项,用于设置响应式数据和方法等setup(){ const web = reactive({title:false})const show = () => {web.title = !web.title}return{web,show}}}).mount("#app")// mount为挂载</script>
</body>
</html>

 

4、条件渲染v-if

通过v-if也可实现上述功能,当v-if为True,显示内容,当为False,则不显示,只需在上述代码添加以下一行代码即可。

<p v-if="web.title">v-if显示的内容</p>

实现的功能:当web.user在不同数值段,显示不同的内容。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- <script src="vue.global.js"></script> -->
</head>
<body><div id="app"><!-- 插值表达式 --><p v-if="web.user < 1000">user小于1000</p><p v-else-if="web.user > 1000 && web.user < 2000">user小于2000</p><p v-else>user大于2000</p></div><script type="module">import {createApp, reactive} from './vue.esm-browser.js'// const {createApp, reactive} = VuecreateApp({// setup选项,用于设置响应式数据和方法等setup(){ const web = reactive({user:500})return{web     }}}).mount("#app")// mount为挂载</script>
</body>
</html>

 

http://www.lryc.cn/news/354963.html

相关文章:

  • 华为交换机基础实验----VLAN基础
  • Vue3学习使用axios和qs进行POST请求和响应处理
  • 张大哥笔记:赚钱高手养成计划---如何将一份时间产生N份收入?
  • excel里如何将数据分组转置?
  • WHAT - 前端安全性测试和常见攻击手段
  • 重量and体积,不要在傻傻的花冤枉钱寄快递了!
  • docker ps显示的参数具体是什么意思
  • 【C++】多态:编程中的“一人千面”艺术
  • 【必备工具】gitee上传-保姆级教程
  • P1115 最长子段和
  • 02 FreeRTOS 任务
  • NSS题目练习4
  • 【算法】合并k个已排序的链表
  • 【Muduo】三大核心之EventLoop
  • ubuntu安装完桌面后如何启动
  • 知识融合概述
  • LIO-EKF: High Frequency LiDAR-Inertial Odometry using Extended Kalman Filters
  • Shell脚本学习笔记(更新中...)
  • leetcode 210.课程表II
  • SpringBootTest测试框架五
  • 赛事|基于SprinBoot+vue的CSGO赛事管理系统(源码+数据库+文档)
  • 线性化技巧:绝对值变量的线性化
  • List基本使用(C++)
  • ELK 日志监控平台(一)- 快速搭建
  • 工作中写单片机代码,与学校里有什么不同?
  • Unity LayerMask避坑笔记
  • (原创)从右到左排列RecycleView的数据
  • 【C语言】数据指针地址的取值、赋值、自增操作避坑
  • Java进阶-SpringCloud使用BeanUtil工具类简化对象之间的属性复制和操作
  • 【ES6】ECMAS6新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析