Vue--1.4Vue指令

Vue会根据不同的指令,针对标签实现不同的功能。

指令:带有v-前缀的特殊标签属性

v-前缀="表达式"

1.v-html

作用:动态解析标签innerHTML

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><div v-html="msg"></div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{msg:'<a href="http://www.itheima.com">黑马程序员</a>'}})
</script>
</html>

2.v-show

作用:控制元素显示隐藏

语法:v-show=“表达式” 表达式值true显示,false隐藏

原理:从css角度进行了隐藏,添加了display:none;

场景:频繁切换显示隐藏的场景

3.v-if

作用:控制元素显示隐藏(条件渲染)

语法:v-if=“表达式” 表达式值true显示,false隐藏

场景:要么显示,要么隐藏,不频繁切换的场景

4.v-else v-else-if

作用:辅助v-if进行判断渲染

语法:v-else v-else-if=“表达式”

注意:需要紧挨着v-if一起使用

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><p v-if="gender==1">性别:男</p><p v-else>性别:女</p><hr><p v-if="score>=90">成绩评定A:奖励电脑一台</p><p v-else-if="score>=75">成绩评定B:奖励周末郊游</p><p v-else-if="score>=60">成绩评定C:奖励零食礼包</p><p v-else>成绩评定D:奖励一周不能玩手机</p>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{gender:1,score:80}})
</script>
</html>

5.v-on

作用:注册事件=添加监听+提供处理逻辑

语法:1)v-on:事件名=“内联语句”

2)v-on:事件名=“methods中的函数名”

简写:@事件名=""

注意:methods函数内的this指向Vue实例

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><!-- 鼠标点击 --><button @click="count--">-</button>    <!-- @=v-on: --><span>{{count}}</span><button v-on:click="count++">+</button><hr><!-- 鼠标划入 --><button v-on:mouseenter="count--">-</button><span>{{count}}</span><button v-on:mouseenter="count++">+</button><hr><button @click="fn">切换显示隐藏</button><h1 v-show="isShow">黑马程序员</h1>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{count:0,isShow:true},methods:{//methods中的函数使用this都指向当前实例fn(){app.isShow=!app.isShow  //this.isShow=!this.isShow}}})
</script>
</html>

v-on调用传参

实例:饮料自动贩卖机

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><div style="border:2px solid #000;width:140px;height:auto;padding:20px;border-radius:15px;"><h3>饮料自动售货机</h3><button @click="buy(5)">可乐5元</button><button @click="buy(10)">咖啡10元</button></div><p>银行卡余额:{{money}}元</p>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{money:100},methods:{buy(a){this.money-=a}}})
</script>
</html>

6.v-bind

作用:动态的设置html的标签属性->src url title......

语法:v-bind:属性名=“表达式”

简写::属性名=“表达式”

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><!-- v-bind:src可简写为:src --><img v-bind:src="imgUrl" v-bind:title="msg">
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{imgUrl:'./image/logo.jpeg',msg:'hello Vue'}})
</script>
</html>

实例:图片轮播

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><button @click="i--" v-show="i>0">上一页</button><img :src="imgList[i]" style="width:300px;"><button @click="i++" v-show="i<imgList.length-1">下一页</button>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{i:0,imgList:['./image/1.jpg','./image/2.jpg','./image/3.jpg',]}})
</script>
</html>

7.v-for

作用:基于数据循环,多次渲染整个元素 ->数组、对象、数字...

语法:v-for=“(item,index) in 数组”  item是每一项,index是下标

如果不需要index,可简写为v-for=“item in 数组”

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><h3>水果店</h3><ul><li v-for="(item,index) in list">{{item}}</li><li v-for="item in list">{{item}}</li></ul>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{list:['西瓜','葡萄','桃子']}})
</script>
</html>

实例:书架

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app"><h3>书架</h3><ul><li v-for="(item,index) in booksList"><span>{{item.name}}</span><span>{{item.author}}</span><button @click="del(item.id)">删除</button></li></ul>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{booksList:[{id:1,name:'《红楼梦》',author:'曹雪芹'},{id:2,name:'《西游记》',author:'吴承恩'},{id:3,name:'《水浒传》',author:'施耐庵'},{id:4,name:'《三国演义》',author:'罗贯中'}]},methods:{del(id){//filter:根据条件,保留满足条件的对应项,得到一个新数组//箭头函数filter(item=>item.id!==id)相当于filter(item){item.id!==id}this.booksList=this.booksList.filter(item=>item.id!=id)}}})
</script>
</html>
v-for中的key

语法::key=""

作用:给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用。

如果不添加key,那么v-for的默认行为会尝试原地修改元素(就地复用)

注意点:

1)key的值只能是字符串或数字类型

2)key的值必须具有唯一性

3)推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应)

<li v-for="(item,index) in xxx" :key="xxx.id"></li>

8.v-model

作用:给表单元素使用,双向数据绑定->可以快速获取或设置表单元素内容

1)数据变化->试图自动更新

2)视图变化->数据自动更新

语法:v-model='变量'

<!doctype html>
<html>
<head><meta charset="utf-8"><meta name="Author" content=""/><meta name="Keywords" content=""/><meta name="Description" content=""/>
</head>
<body>
<div id="app">账户:<input type="text" v-model="username"><br><br>密码:<input type="password" v-model="password"><br><br><button @cilck="login">登录</button><button @click="reset">重置</button>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>const app=new Vue({el:'#app',data:{username:'',password:''},methods:{login(){console.log(this.username)},reset(){this.username='',this.password=''}}})
</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/103478.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023国赛数学建模B题思路代码 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到…

Python 递归、迷宫问题、八皇后问题

递归应用场景 各种数学问题&#xff0c;如八皇后问题、汉诺塔、阶乘问题、迷宫问题、球和篮子问题等各种算法中也会使用到递归&#xff0c;比如快排、归并排序、二分查找、分治算法等能够用栈解决的问题递归的优点就是代码比较简洁 迷宫问题&#xff08;Python版&#xff09;…

Docker 的常用命令

0 基本命令 概述 [root192 home]# docker --helpUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions:--config string Location of client configfiles (default "/root/.docker")-c, --context string Name of the context…

JAVA毕业设计097—基于Java+Springboot+Vue+uniapp的医院挂号小程序系统(源码+数据库)

基于JavaSpringbootVueuniapp的医院挂号小程序系统(源码数据库)097 一、系统介绍 本系统前后端分离(网页端和小程序端都有) 本系统分为管理员、医院、用户三种角色(角色菜单可自行分配) 用户功能&#xff1a; 注册、登录、医院搜索、最新资讯、医生搜索、挂号预约、挂号记…

【Springcloud】elk分布式日志

【Springcloud】elk分布式日志 【一】基本介绍【二】Elasticsearch【1】简介【2】下载【3】安装【4】启动 【三】Logstash【1】简介【2】下载【3】安装【4】启动 【四】Kibana【1】简介【2】下载【3】安装【4】启动 【五】切换中文【六】日志收集 【一】基本介绍 &#xff08;…

【Linux从入门到精通】通信 | 共享内存(System V)

本篇文章接着上篇文章通信 | 管道通信&#xff08;匿名管道 & 命名管道&#xff09;进行讲解。本篇文章的中点内容是共享内存。 文章目录 一、初识与创建共享内存 1、1 什么是共享内存 1、2 共享内存函数 1、2、1 创建共享内存 shmget 1、2、2 ftok 生成 key 1、2、3 获取共…

C#__多线程之任务和连续任务

/// <summary> /// /// 任务&#xff1a;System.Threading.Tasks&#xff08;异步编程的一种实现方式&#xff09; /// 表应完成某个单元工作。这个工作可以在单独的线程中运行&#xff0c;也可以以同步方式启动一个任务。 /// /// 连续任务&#…

华为云云耀云服务器L实例评测|在 Centos Docker 中使用Nginx部署Vue项目

目录 前言 项目构建 使用CentOS部署 安装Nginx 配置Nginx 项目启动 访问重定向 使用Docker部署 编写docker文件 dockerfile nginx dockercompose 项目启动 前言 本期我们测试在云耀云服务器L实例中分别演示如何在 系统镜像Centos 与 应用镜像 Docker 中使用Nginx…

前端js下载zip文件异常问题解决

目录 一&#xff0c;本文解决问题如下 二&#xff0c;原下载代码 1&#xff0c;ajax get 下载文件 2&#xff0c;下载异常图&#xff1a; 三&#xff0c;成功下载的 1&#xff0c; JQuery 实现文件下载xhr 2&#xff0c;图例 引言&#xff1a; 本人使用的ajax 下载&…

geopandas 笔记:geometry上的操作汇总

如无特殊说明&#xff0c;数据主要来自&#xff1a;GeoDataFrame 应用&#xff1a;公园分布映射至subzone_UQI-LIUWJ的博客-CSDN博客 0 读入数据 subzone gpd.read_file(ura-mp19-subzone-no-sea-pl.geojson) subzone subzone_tstsubzone[0:5] subzone_tst subzone_tst.plot…

iOS App上架新规解析:如何进行App备案

摘要 本文将以iOS技术博主的身份&#xff0c;解析iOS App上架新规中的App备案要求。通过探讨备案对开发者和市场的影响&#xff0c;介绍备案流程和所需材料&#xff0c;帮助开发者了解如何进行App备案。 引言 近年来&#xff0c;移动应用市场蓬勃发展&#xff0c;但同时也存…

elasticsearch wildcard 慢查询原因分析(深入到源码!!!)

大家好&#xff0c;我是蓝胖子&#xff0c;前段时间线上elasticsearch集群遇到多次wildcard产生的性能问题&#xff0c; elasticsearch wildcard 一直是容易引发elasticsearch 容易宕机的一个风险点&#xff0c; 但究竟它为何消耗cpu呢&#xff1f;又该如何理解elasticsearch p…