“Vue进阶:深入理解插值、指令、过滤器、计算属性和监听器“

目录

  • 引言:
    • Vue的插值
    • Vue的指令
    • Vue的过滤器
    • Vue的计算属性和监听器
    • vue购物车案例
    • 总结:

引言:

Vue.js是一款流行的JavaScript框架,它提供了许多强大的功能来简化前端开发。在本篇博客中,我们将深入探讨Vue的一些高级特性,包括插值、指令、过滤器、计算属性和监听器。通过理解和灵活运用这些功能,我们可以更好地构建出丰富、高效的Vue应用程序。

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></title><style>.font-30{font-size: 30px;}</style></head><body><div id = "app">{{msg}}<br /><hr />html,class绑定-------<b :class="msg3" v-html="msg2"></b><br /><hr />表达式----<br />{{num+1}}<br />{{str.substring(2,4)}}<br /><input v-model="ok" />{{ok==true?'yes':'no'}}<br /><hr /></div><script>new Vue({el:"#app",data(){return{msg:'hello vue',msg2:'<span style="color:red">msg2样式</span>',msg3:'font-30',num:6,str:'沉谭秋叶',ok:true}}})</script></body>
</html>

在这里插入图片描述

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></title><style>.font-30{font-size: 30px;}</style></head><body><div id = "app"><input v-model="score" /><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><br /><hr />v-show<b v-show="isShow">xxx</b><br /><hr />v-for<b v-for="i in arr">{{i}}-</b><b v-for="i in arrs">{{i.name}}-{{i}}=</b>	<br /><hr /><select><option>请选择</option><option v-for="i in arrs" :value="i.id">{{i.name}}</option></select><br /><hr /><div v-for="i in arrs"> <input type="checkbox" name="hobby" :value="i.id" />{{i.name}}</div><br /><hr /><input v-model="evename"/><button v-on:[evename]="text">点击</button></div><script>new Vue({el:"#app",data(){return{score:69,isShow:false,arr:['a','b','c','d'],arrs:[{name:'小王',id:1},{name:'小李',id:2},{name:'小桂',id:3},{name:'小勇',id:4}],evename:'click'}},methods:{text(){alert('点击了!!')}}})</script></body>
</html>

在这里插入图片描述

Vue的过滤器

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="jquery.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script><script src="date.js"></script><title></title></head><body><div id = "app">{{msg}}<br>{{msg | filter1}} <br>{{msg | filter1 | filter2}}<br>{{msg | filter3(3,7)}}<br><hr>{{time}}<br>{{time | filterName}}</div><script>Vue.filter('filterName', function (value) {// value 表示要过滤的内容return fmtDate(value);});new Vue({el:"#app",filters:{'filter1':function(v){return v.substring(0,5)},'filter2':function(v){return v.substring(1,3)},'filter3':function(v,begin,end){return v.substring(begin,end)}},data(){return{msg:'允许你自定义过滤器,被用作一些常见的文本格式化,格式如下',time:new Date()}}})</script></body>
</html>

在这里插入图片描述

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></title><style>.font-30{font-size: 30px;}</style></head><body><div id = "app">{{msg}}<br /><hr />单价<input v-model="price"/>数量<input v-model="num"/>小计{{count}}<br />千米<input v-model="km"/><br /><input v-model="m"/></div><script>new Vue({el:"#app",data(){return{msg:'hello vue',price:88,num:1,m:1000,km:1}},computed:{count:function(){return this.price*this.num}},watch:{km:function(v){this.m = parseInt(v)*1000;},m:function(v){this.km = parseInt(v)/1000;}}})</script></body>
</html>

在这里插入图片描述
data.js

//给Date类添加了一个新的实例方法format
Date.prototype.format = function (fmt) {//debugger;var o = {"M+": this.getMonth() + 1,                 //月份"d+": this.getDate(),                    //日"h+": this.getHours(),                   //小时"m+": this.getMinutes(),                 //分"s+": this.getSeconds(),                 //秒"q+": Math.floor((this.getMonth() + 3) / 3), //季度"S": this.getMilliseconds()             //毫秒};if (/(y+)/.test(fmt))fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));for (var k in o)if (new RegExp("(" + k + ")").test(fmt))fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));return fmt;
};function fmtDate(date, pattern) {var ts = date.getTime();var d = new Date(ts).format("yyyy-MM-dd hh:mm:ss");if (pattern) {d = new Date(ts).format(pattern);}return d.toLocaleString();
};

vue购物车案例

<!DOCTYPE html>
<html>
<head><title>购物车</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script><style>table {border-collapse: collapse;width: 100%;}th, td {border: 1px solid black;padding: 8px;text-align: left;}th {background-color: #f2f2f2;}.btn-group {display: flex;justify-content: space-between;}</style>
</head>
<body><div id="app"><h1>购物车</h1><table><thead><tr><th>商品</th><th>价格</th><th>数量</th><th>小计</th><th>操作</th></tr></thead><tbody><tr v-for="v in arr" ><td>{{ v.name }}</td><td>{{ v.price }}</td><td><input type="number" v-model="v.quantity" @input="xj(v)"></td><td>{{ v | filter1 }}</td><td class="btn-group"><button @click="add(v)">+</button><button @click="jdd(v)">-</button></td></tr></tbody><tfoot><tr><td colspan="3">总计</td><td>{{ total }}</td></tr></tfoot></table></div><script>new Vue({el: '#app',data: {arr: [{ name: '尿不湿', price: 49, quantity: 1, subtotal: 49 },{ name: '狼牙棒', price: 28, quantity: 1, subtotal: 28 },{ name: '鸡毛卷', price: 36, quantity: 1, subtotal: 36 }]},computed: {total: function() {return this.arr.reduce((sum, v) => sum + v.subtotal, 0);}},methods: {xj: function(v) {v.subtotal = v.price * v.quantity;},add: function(v) {v.quantity++;this.xj(v);},jdd: function(v) {if (v.quantity > 0) {v.quantity--;this.xj(v);}}},filters: {'filter1': function(v) {return v.price * v.quantity;}}});</script>
</body>
</html>

在这里插入图片描述

总结:

通过本篇博客的学习,我们深入理解了Vue的插值、指令、过滤器、计算属性和监听器这些高级特性。这些功能不仅可以帮助我们更好地处理数据绑定和DOM操作,还能提升应用程序的性能和开发效率。在实际项目中,我们应根据具体需求合理运用这些功能,以构建出饱满、高效的Vue应用程序。

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

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

相关文章

Java项目:SSM的网上书城系统

作者主页&#xff1a;Java毕设网 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 一、相关文档 1、关于雅博书城在线系统的基本要求 &#xff08;1&#xff09;功能要求&#xff1a;可以管理个人中心、用户管理、图书分类管理、图书信息管理、…

Java 函数式编程思考 —— 授人以渔

引言 最近在使用函数式编程时&#xff0c;突然有了一点心得体会&#xff0c;简单说&#xff0c;用好了函数式编程&#xff0c;可以极大的实现方法调用的解耦&#xff0c;业务逻辑高度内聚&#xff0c;同时减少不必要的分支语句&#xff08;if-else&#xff09;。 一、函数式编…

【Vue3+Vite+Ts+element-plus】vue 使用 tsx语法详解

系列文章目录 【Vue3ViteTselement-plus】 超级详细 最新 vite4vue3tselement-pluseslint-prettier 项目搭建流程 【Vue3ViteTselement-plus】使用tsx实现左侧栏菜单无限层级封装 【Ts 系列】 TypeScript 从入门到进阶之基础篇(一) ts类型篇 文章目录 系列文章目录前言一、必要…

MySQL 数据库学习(六)备份与binlog日志

1 案例1&#xff1a;完全备份与恢复 1.1 问题 练习物理备份与恢复练习mysqldump备份与恢复 1.2 方案 在数据库服务器192.168.88.50 练习数据的备份与恢复 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一&#xff1a;练习物理备份与恢复 冷备份&#xff0c;需停止数…

Python手写人脸识别

Python手写人脸识别 引言 人脸识别是一种通过计算机视觉和模式识别技术来识别和验证人脸的技术。Python是一种广泛使用的编程语言,它提供了许多强大的库和工具来实现人脸识别。 在Python中,可以使用多种方法来实现人脸识别,包括基于特征提取的方法、基于深度学习的方法等…

clickhouse学习之路----clickhouse的特点及安装

clickhouse学习笔记 反正都有学不完的技术&#xff0c;不如就学一学clickhouse吧 文章目录 clickhouse学习笔记clickhouse的特点1.列式存储2. DBMS 的功能3.多样化引擎4.高吞吐写入能力5.数据分区与线程级并行 clickhouse安装1.关闭防火墙2.CentOS 取消打开文件数限制3.安装依…

java字符串的学习总结

/* 总结: 1. ★★★★★★★String 是字符串,内容不可改变★★★★★★★★ 常用方法: (1)length() 长度(2)equals(string类型) 比较当前字符串于括号里的字符串是否相同(3)startsWith(st…

支持向量机基本原理,Libsvm工具箱详细介绍,基于支持向量机SVM的遥感图像分类

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接: 基于SVM的遥感图像分类识别,基于支持向量机SVM的遥感图像分类识别(代码完整,数据齐全)_图像匹配中SVM多分类问题资源-CSDN文库 https://downloa…

Python 运行代码

一、Python运行代码 可以使用三种方式运行Python&#xff0c;如下&#xff1a; 1、交互式 通过命令行窗口进入 Python 并开始在交互式解释器中开始编写 Python 代码 2、命令行脚本 可以把代码放到文件中&#xff0c;通过python 文件名.py命令执行代码&#xff0c;如下&#xff…

ARMv7处理器

本文档介绍常见的 ARM 架构,包括 Cortex-A5,Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15. 常见的术语 DFT(Design for Test), 为了增强芯片可测性而采用的一种设计方法 APB(Advanced Peripheral Bus), 是一种低速外设总线接口,通常用于将外部设备(如I/O端口、定时器、UA…

机器学习——pca降维/交叉验证/网格交叉验证

1、pca降维&#xff1a;目的是提升模型训练速度 定义&#xff1a; 使用方法&#xff1a;给训练数据或者测试数据进行降维处理 给训练数据降维 给测试数据降维&#xff1a;这里1就要用transform&#xff0c;而不是fit_transform&#xff0c;因为之前训练数据降维时特征已经确定…

构建基于neo4j知识图谱、elasticsearch全文检索的数字知识库

前言&#xff1a; 在数字化时代&#xff0c;知识库的建设正逐渐成为企业、学术机构和个人的重要资产。本文将介绍如何使用neo4j和elasticsearch这两种强大的数据库技术来构建知识库&#xff0c;并对其进行比较和探讨。 技术栈&#xff1a; springbootvueneo4jelasticsearch…

【每日一题】1993. 树上的操作

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;深度优先搜索 写在最后 Tag 【深度优先搜索】【树】【设计数据结构】【2023-09-23】 题目来源 1993. 树上的操作 题目解读 本题是一个设计类的题目&#xff0c;对于设计类的题目就一步步的实现题目要求的成员方法即可…

【ACDC数据集】:预处理ACDC心脏3D MRI影像数据集到VOC数据集格式,nii转为jpg,label转为png

【Segment Anything Model】做分割的专栏链接&#xff0c;欢迎来学习。 【博主微信】cvxiaoyixiao 本专栏为公开数据集的预处理&#xff0c;持续更新中。 文章目录 1️⃣ ACDC数据集介绍2️⃣ ACDC数据集样例 3️⃣ 预处理ACDC目标 4️⃣ 处理结果样图 5️⃣ 代码 6️⃣ 划分测…

十五)Stable Diffusion使用教程:另一个线稿出3D例子

案例:黄金首饰出图 1)线稿,可以进行色阶加深,不易丢失细节; 2)文生图,精确材质、光泽、工艺(抛光、拉丝等)、形状(包括深度等,比如镂空)和渲染方式(3D、素描、线稿等)提示词,负面提示词; 3)seed调-1,让ai随机出图; 4)开启controlnet,上传线稿图,选择cann…

leetcode 2560. 打家劫舍 IV

2560. 打家劫舍 IV 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统&#xff0c;所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额 。…

《Java并发编程实战》第4章-对象的组合

0.概念理解 状态空间&#xff1a;对象与变量所有可能的取值&#xff0c;状态空间越小&#xff0c;就越容易判断线程的状态&#xff0c;final域用得越多&#xff0c;就越能简化对象可能状态的分析过程&#xff08;不可变对象只有唯一的状态&#xff09;。 实例封闭&#xff1a;…

Maven高级---分模块设计,继承(继承关系/版本锁定/自定义属性)

目录 分模块设计 继承与聚合 继承关系 ​案例​ 版本锁定 自定义属性/引用属性 分模块设计 把一个项目拆分成不同的模块 我们可以把原来一个项目包中的东西单独提出来作为一个模块,也是解耦的思想 然后我们可以通过引入依赖的方式将这两个模块引入,如下 继承与聚合 继…

xxe攻击(XML外部实体)

1.定义 XML用于标记电子文件使其具有结构性的标记语言&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义&#xff08;可选&#xff09;、文档元素。 http://www.w3school.com.…

初识操作系统

目录 一.操作系统的概念 二.正确理解“管理” 三.操作系统对硬件进行管理 四.系统调用接口 五.用户操作接口 一.操作系统的概念 操作系统是一款进行软硬件资源管理的软件 现在我们知道了操作系统的概念了&#xff0c;那么为什么要有操作系统呢&#xff1f; 操作系统将软…