vue模板语法上集->插值,指令,过滤器,计算属性监听属性,vue购物车

news2025/1/8 21:24:05
  • 插值
  • 指令
  • 过滤器
  • 计算属性&监听属性
  • vue购物车

1.插值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>插值</title>
		<style type="text/css">
			.f30{
				font-size: 30px;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<p>文本</p>
			{{msg}}
			<p>html解析</p>
			<p>字体颜色变黄</p>
			<b v-html="msg2"></b>
			<p>字体变黄变大</p>
			<b :class="msg3" v-html="msg2"></b>
			<p>表达式</p>
			{{num+1}}<br />
			{{warn.substr(0,2)}}<br />
			<input v-model="ok"/>
			{{ok==1?'被抓了':'有内鬼'}}
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data(){
					return{
						msg:'hello 小兵',
						msg2:'<span style="color:yellow">hello 小兵</span>',
						msg3:'f30',
						num:6,
						warn:'条子来了',
						ok:1
					};
				}
			});
		</script>
		
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>指令</title>
	</head>
	<body>
		<div id="app">
			<p>v-if/v-else-if/v-else</p>
			<input v-model="score"/><br />
			<b v-if="score<60">不及格</b>
			<b v-else-if="score>=60 && score<70">及格</b>
			<b v-else-if="score>=70 && score<80">一般</b>
			<b v-else-if="score>=80 && score<90">良好</b>
			<b v-else="">优秀</b>
			60以下 不及格
			60-70 及格
			70-80 一般
			80-90 良好
			90-100 优秀
			
			<p>v-show</p>
			v-if与v-show的区别<br />
			<b v-if="isShow">展示</b>
			<b v-show="isShow">展示</b>
			
			<p>v-for</p>
			<i v-for="a in arr">{{a}}&nbsp;&nbsp;</i>
			<i v-for="i,u in users">&nbsp;&nbsp;{{i}}</i>
			<select>
				<option v-for="h in hobby" :value="h.id">{{h.name}}</option>
			</select>
			<div id="" v-for="h in hobby"    	>
				<input type="checkbox" name="hobby"  :value="h.id" />{{h.name}}
			</div>
			
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data(){
					return{
						score:34,
						isShow:false,
						arr:[1,2,3,4],
						users:[{
							name:'ab',id:1
						},{
							name:'ac',id:2
						},{
							name:'ad',id:3
						},{
							name:'ae',id:4
						}],
						hobby:[{
							name:'保健',id:1
						},{
							name:'理发',id:2
						},{
							name:'洗头',id:3
						},{
							name:'养生',id:4
						}]
					};
				}
			});
		</script>
	</body>
</html>

 

 3.过滤器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<script src="date.js" type="text/javascript" charset="utf-8"></script>
		<title>过滤</title>
	</head>
	<body>
		<div id="app">
			<p>局部过滤器基本应用</p>
			{{msg}}<br />
			{{msg | filterA}}
			<p>局部过滤器串行使用</p>
			{{msg}}<br />
			{{msg | filterA | filterB}}
			<p>局部过滤器传参</p>
			{{msg | filterC(3,10)}}<br />
			<p>全局过滤器</p>
			{{time}}<br />
			{{time | fmtDateFilter}}
		</div>
		<script type="text/javascript">
			Vue.filter('fmtDateFilter',function(value){
				return fmtDate(value);
			});
			new Vue({
				el:'#app',
				filters:{
                   'filterA':function(v){
					   return v.substring(0,6);
				   },
				   'filterB':function(v){
				   	   return v.substring(2,5);
				    },
				   'filterC':function(v,begin,end){
				   	   return v.substring(begin,end);
				    }
				},
				data(){
					return{
						msg:'小猪同学,你的好基友被抓了',
						time:new Date()
					};
				}
				,methods:{
					test(){
						// 单击事件,双击事件
						alert('点我试试!!');
					}
				}
			});
		</script>
	</body>
</html>

4.计算属性&监听属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>计算属性监听属性</title>
		
		</style>
	</head>
	<body>
		<div id="app">
			<p>计算属性</p>
			单价:<input v-model="price"/>
			数量:<input v-model="num"/>
			小计:{{count}}
			
			<p>监听属性</p>
			千米:<input v-model="km"/><br />
			米:<input v-model="m"/><br />
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data(){
					return{
						price:78,
						num:1,
						km:1,
						m:1000
					};
				},
				computed:{
					count:function(){
						return this.price * this.num;
					}
				},
				watch:{
					km:function(v){
						// v指的是被监听的属性,是km
						this.m=parseInt(v) * 1000;
					},
					m:function(v){
						// v指的是被监听的属性,是m
						this.km=parseInt(v) / 1000;
					}
				}
			});
		</script>
		
	</body>
</html>

5.vue购物车

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>vue购物车</title>
		
	</head>
	<body>
		<div id="app">
			<div v-if="cart.length==0">
				<p>购物车为空</p>
			</div>
			<!-- //st实体,xb下标 -->
			<div v-else v-for="st,xb in cart" :key="xb">
				<p>名称:{{st.name}}</p>				
				<p>价格:{{st.price}}</p>
				<p>数量:{{st.num}}</p>
				<p>单价:{{st.price * st.num}}</p>
				<button @click="increaseQuantity(xb)">+</button>
				{{st.num}}
			    <button @click="decreaseQuantity(xb)">-</button>
				<button @click="removeFramCart(xb)">移除</button>
			</div>
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data(){
					return{
						cart:[
							{id:1,name:'香蕉',price:10,num:1},
							{id:2,name:'橘子',price:20,num:1},
							{id:3,name:'西瓜',price:16,num:1},
						],
					};
				},
				methods:{
					
					removeFramCart(xb){
					    this.cart.splice(xb,1);	
					},
					increaseQuantity(xb) {
					    this.cart[xb].num++;
					},
					decreaseQuantity(xb){
						if(this.cart[xb].num > 1){
							this.cart[xb].num--;
						}else{
							removeFramCart(xb);
						}
					},
				},
			});
		</script>
	</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频汇聚/视频云存储/视频监控管理平台EasyCVR录像存储功能如何优化?具体步骤是什么?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。视频监控系统EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、…

股指期权交割日大盘必跌吗?

股指期权交割日大盘必跌没有这一说法&#xff0c;股指期货的价格涨跌和交割日并无太大关系&#xff0c;临近交割日以后&#xff0c;股指价格和大盘趋于一致&#xff0c;如果价格相同的话&#xff0c;不存在下跌的可能性&#xff0c;下文揭秘股指期权交割日大盘必跌吗&#xff1…

面试算法8:和大于或等于k的最短子数组

题目 输入一个正整数组成的数组和一个正整数k&#xff0c;请问数组中和大于或等于k的连续子数组的最短长度是多少&#xff1f;如果不存在所有数字之和大于或等于k的子数组&#xff0c;则返回0。例如&#xff0c;输入数组[5&#xff0c;1&#xff0c;4&#xff0c;3]&#xff0…

部署大数据平台详细教程以及遇到的问题解答(ubuntu18.04下安装ambari2.7.3+HDP3.1.0)

节点准备: 我搭建的是3台,节点可以随意。建议最少是3台 hostname ip 角色 ubuntu-1804-1 172.21.73.53 从节点 ubuntu-1804-2 172.21.73.54 主节点 ubuntu-1804-3 172.21.73.55 从节点 一:关闭所有节点的防火墙 sudo ufw disable二:配置时钟同步NTP 所有节点安装ntp sud…

nodejs使用jsonwebtoken/jwt-decode生成jwt和解密token的方法

首先需要安装jsonwebtoken/jwt-decode依赖&#xff0c;这个就不用说了。 生成jwt的token&#xff0c;需要有一个加密用的salt&#xff0c;然后使用jwt.sign方法生成jwt token,具体如下&#xff1a; const jwt require("jsonwebtoken"); const jwtSalt "jasdo…

LinkedList相较于Arravlist的特点/优化

Arravlist底层是内存空间连续的数组&#xff0c;可以根据下标进行随机访问&#xff0c;效率比较高&#xff0c;因为在根据下标访问某一个元素时&#xff0c;并不是一个一个去查&#xff0c;而是算出来这个下标的地址&#xff0c;直接根据这个地址的指向去获取的&#xff0c;因为…

中国人民大学与加拿大女王大学金融硕士——在职读研,我们一起微笑前行

人生总有不期而遇的温暖&#xff0c;也有生生不息的希望。想要更好的生活&#xff0c;就先让生活看到最好的你。对于已经萌发在职读研的你&#xff0c;是否找到合适的院校呢&#xff1f;中国人民大学与加拿大女王大学金融硕士项目符合你的预期吗&#xff1f; 中国人民大学与加拿…

C++11的半同步半异步线程池

C11的半同步半异步线程池 简介同步队列Take函数Add函数Stop函数SyncQueue完整代码 线程池主函数测试 简介 半同步半异步线程池用的比较多&#xff0c;实现也比较简单。 其中同步层包括同步服务层和排队层&#xff0c;指的是将接收的任务排队&#xff0c;将所有的任务排队到一…

【数据分享】我国七普的乡镇(街道)人口数据(免费获取)

人口数据是我们在各项研究中都经常使用的数据&#xff01;人口数据的主要来源是人口普查&#xff0c;全国性的人口普查每十年进行一次。最近一次的人口普查是第七次全国人口普查&#xff0c;简称七普。七普统计的是2020年的人口数据。 之前我们分享过省市县三个层级的七普的人…

在业务和IT的视角中,MES管理系统有哪些重要性

在当今制造业中&#xff0c;MES生产管理系统已成为生产管理层面不可或缺的一部分。MES作为一款集成的软件解决方案&#xff0c;旨在连接企业的各个生产环节&#xff0c;实现生产计划、调度、执行和跟踪。本文将从业务和IT视角出发&#xff0c;探讨MES管理系统的重要性和实施细节…

PMP对项目管理工作有什么用?

首先&#xff0c;项目管理岗位基本是不限行业的&#xff0c;所以&#xff0c;只要是项目管理相关的岗位&#xff0c;pmp证书都是能起到效果的&#xff0c;不用担心局限性太大&#xff0c;而且&#xff0c;pmp证书是国际证书&#xff0c;无论国企还是外企&#xff0c;都是认可这…

go net/http 源码解读

回顾 1. HTTP Server 在 go 中启动一个 http server 只需短短几行代码 func PingHandler(w http.ResponseWriter, r *http.Request) {io.WriteString(w, "pong!") }func main() {http.HandleFunc("/ping", PingHandler)log.Fatal(http.ListenAndServe(&…

RocketMQ 源码分析——Producer

文章目录 消息发送代码实现消息发送者启动流程检查配置获得MQ客户端实例启动实例定时任务 Producer 消息发送流程选择队列默认选择队列策略故障延迟机制策略*两种策略的选择 技术亮点:ThreadLocal 消息发送代码实现 下面是一个生产者发送消息的demo&#xff08;同步发送&#…

Linux环境中数据误删除后恢复指导

一、背景 在很多Linux系统运维工作中&#xff0c;很多人会遇到敲错命令&#xff0c;或复制命令出错&#xff0c;或直接执行了rm -rf命令&#xff0c;事后才恍然大悟&#xff0c;闯下大祸&#xff0c;抛开问题&#xff0c;如果真的遇到这种情况&#xff0c;我们该如何应对呢&…

如何使用IP归属地查询API来追踪网络活动

引言 在当今数字化世界中&#xff0c;了解网络活动的源头和位置对于网络安全、市场研究和用户体验至关重要。IP归属地查询API是一种强大的工具&#xff0c;可以帮助您追踪网络活动并获取有关IP地址的重要信息。本文将探讨如何使用IP归属地查询API来追踪网络活动&#xff0c;以…

[C++ 网络协议] 多播与广播

目录 1. 多播 1.1 多播的使用情形 1.2 多播的原理 1.3 如何实现多播 1.4 多播的代码实现 2. 广播 2.1 广播与多播的区别 2.2 广播的分类 2.3 实现广播 1. 多播 1.1 多播的使用情形 考虑一种情形&#xff0c;你要向10000名用户发送数据&#xff0c;此时如果用TCP提供服…

MDPI模板报错的问题---提示缺少sty文件

MDPI模板报错的问题—提示缺少sty文件 平时大多数提交IEEE trans模板时大多使用CTEX编译&#xff0c;然而&#xff0c;MDPI模板需要用texlive&#xff0c;二者之间如果先安装CTEX后安装texlive将会导致库文件的冲突。结果将会报缺少sty的文件错。网上提供了很多解决方案&#…

Nmap安装和使用详解

Nmap安装和使用详解 Nmap概述功能概述运行方式 Nmap安装官方文档参考&#xff1a;Nmap参数详解目标说明主机发现端口扫描Nmap将目标主机端口分成6种状态&#xff1a;Nmap产生结果是基于机器的响应报文&#xff0c;而这些主机可能是不可信任的&#xff0c;会产生一些迷惑或者误导…

如何将 ONLYOFFICE 协作空间与单页面应用集成

2023 年春季&#xff0c;我们推出了 ONLYOFFICE 协作空间&#xff0c;这是一个先进的联合办公平台&#xff0c;旨在加强与客户、合作伙伴和第三方的文档协作。使用可自定义的房间和高级安全功能可以彻底改变您的文档协作方式。在本博文中&#xff0c;我们将以 GitHub Pages 为例…

Linux之操作文件命令

目录 一、阅览文件 1、cat 2、head 3、tail 4、more 5、less 二、过滤命令——grep 1、格式 2、选项 3、匹配模式 三、cut切割命令 1、格式 2、选项 四、sort排序命令 1、格式 2、选项 五、uniq去重命令 六、替换文件中的字符显示tr 1、格式 2、选项 七、…