VUE的模板语法(一)

Vue(一)Vue模板语法之指令 一、Vue模板语法 1、如何理解前端渲染? 把数据填充到HTML标签中 2、前端渲染方式 原生js拼接字符串 基本上就是将数据以字符串的形式拼接到HTML标签中: 缺点:不同开发人员的代码风格差别很大,随着业务的复杂,后期的维护变得逐渐困难起来。 使用前端模板引擎 下面是基于模板引擎art-template的一段代码: 优点:大家都遵循同样的规则写代码分代码可读性明显提高了,方便后期的维护。 缺点:没有专门提供事件机制。 使用vue特有的模板语法 模板语法: 差值表达式 指令 阅读详情

插值

1, 插入文本
2, html
使用v-html指令用于输出html代码
3, 属性
HTML属性中的值应使用v-bind指令
4 ,表达式
Vue提供了完全的JavaScript表达式支持
下面的具体的用法:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
		<title>插值</title>
	</head>
	<body>
		<div id="app">
			<ul>
				<li>
					<h3>文本</h3>
					{{msg}}
				</li>
				<li>
					<h3>html片段</h3>
					{{htmlStr}}
					<div v-html="htmlStr">
					</div>
				</li>
				<li>
					<h3>属性</h3>
					 HTML属性中的值应使用v-bind指令
					 <input  value="街舞"/>
					 <input  v-bind:value="likes"/>
					<input  :value="likes"/>

				</li>
					<li>
									<h3>表达式</h3>
									 Vue提供了完全的JavaScript表达式支持<br />
								{{str.substr(0,6).toUpperCase()}}
								{{ number + 1 }}
								{{ ok ? 'YES' : 'NO' }}
          <li v-bind:id="'list-' + id">我的Id是js动态生成的</li>
									
								</li>
			</ul>
			
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data(){
					return{
						msg:'文本',
						htmlStr:'<span style="color: red;">html片段</span>',
						likes:'围棋',
						str:'https://blog.youkuaiyun.com/water_java',
						number:2,
						ok:false,
						id:6
					}
					
				}
			})
		</script>
	</body>
</html>

指令

核心指令

指的是带有“v-”前缀的特殊属性
①v-if|v-else|v-else-if:
根据其后表达式的bool值进行判断是否渲染该元素
他们只能是兄弟元素
v-else-if上一个兄弟元素必须是v-if
v-else上一个兄弟元素必须是v-if或者是v-else-if
②v-show:
与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style=“display:none”
③v-for:类似JS的遍历,
遍历数组: v-for=“item in items”, items是数组,item为数组中的数组元素
遍历对象: v-for="(value,key,index) in stu", value属性值,key属性名,index下标
④v-model:
用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值
v-for/v-model一起绑定[多选]复选框和单选框

参数

一些指令能够接收一个“参数”,在指令名称之后以冒号表示,
例如:

  <a v-bind:href="url">...</a>

在这里href是参数,告知v-bind指令将该元素的href属性与表达式url的值绑定

<a v-on:click="doSomething">...</a>

在这里click参数是监听的事件名。

动态参数

从2.6.0开始,可以用方括号括起来的JavaScript表达式作为一个指令的参数

  <a v-bind:[attrname]="url"> ... </a>

同样地,你可以使用动态参数为一个动态的事件名绑定处理函数

  <a v-on:[evname]="doSomething"> ... </a>

注1:动态参数表达式有一些语法约束,evName无效,evname有效,回避大写

下面是具体实现代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
		<title>指令</title>
	</head>
	<body>
		<div id="app">
			指令:指的是带有“v-”前缀的特殊属性
			<ul>
				<li>
					<h3>v-if|v-else|v-else-if:根据其后表达式的bool值进行判断是否渲染该元素</h3>
					<div v-if="score>50">A</div>
					<div v-else-if="score>60">B</div>
					<div v-else-if="score>70">C</div>
					<div v-else="">D</div>
					<input v-model="score" />
					 v-model:用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值  
				</li>
				<li>
					<h3> v-show:与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style="display:none"</h3>
					<div v-show="context">
					需要展示的内容
					</div>
					<input  v-model="context"/>

				</li>
				<li>
									<h3> v-for:类似JS的遍历,
                 遍历数组: v-for="item in items", items是数组,item为数组中的数组元素
                 遍历对象: v-for="(value,key,index) in stu", value属性值,key属性名,index下标</h3>
									<div v-for="item in hobby"  >
										<!--获取复选框中被选中的  -->
										<input type="checkbox" :value="item.id" v-model="checkVal"/>{{item.name}}
									</div>
									<input v-model="checkVal" />
									<select v-model="selectVal">
										<option v-for="item in hobby" :value="item.id" >{{item.name}}</option>
									</select>
									<input v-model="selectVal" />
								</li>
								<li>
													<h3> 动态参数</h3>
													<button v-on:[evname]="clickMe">点我</button>
													<input v-model="evname" />
												</li>
								
			</ul>
			
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data(){
					return{
						score:80,
						context:'',
						hobby:[{
							id:1,
							name:'琴'
						},{
							id:2,
							name:'棋'
						},{
							id:3,
							name:'书'
						},{
							id:4,
							name:'画'
						}],
						checkVal:[],
						selectVal:'',
						evname:'dblclick'
					}
				},
				methods:{
				clickMe(){
					alert('点我点我点我!')
				}
				}
			})
		</script>
	</body>
</html>

修饰符

修饰符 (modifier) 是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。
例如:.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault()

 <form v-on:submit.prevent="onSubmit">...</form>    

注1:event.preventDefault()方法的作用?
该方法将通知Web浏览器不要执行与事件关联的默认动作(如果存在这样的动作)

简写

Vue为v-bind和v-on这两个最常用的指令,提供了特定简写

  <a v-bind:href="url">...</a>
  <a :href="url">...</a>
  
  <a v-on:click="doSomething">...</a>
  <a @click="doSomething">...</a> 

过滤器

全局过滤器

 Vue.filter('filterName', function (value) {
     // value 表示要过滤的内容
   });

局部过滤器

 new Vue({
     filters:{'filterName':function(value){}}
   });

vue允许你自定义过滤器,被用作一些常见的文本格式化,格式如下:

  <!-- 在两个大括号中 -->
   {{ name | capitalize }}

   <!-- 在 v-bind 指令中 -->
   <div v-bind:id="rawId | formatId"></div>

注1:过滤器函数接受表达式的值作为第一个参数
注2:过滤器可以串联
{{ message | filterA | filterB }}
注3:过滤器是JavaScript函数,因此可以接受参数:
{{ message | filterA('arg1', arg2) }}

注4:js定义一个类

 function Stu(){};
        Stu.prototype.add(a,b){};//添加一个新的实例方法
		Stu.update(a,b){};//添加一个新的类方法

更详细的的代码实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
		<title>过滤器</title>
	</head>
	<body>
		<div id="app">
			<ul>
			<li>
				<h3>局部过滤器的注册</h3>
				{{msg}}<br>
				{{msg.substr(0,6).toUpperCase()}}<br>
				{{msg|a}}
			</li>
			<li>
				<h3>局部过滤器的串联</h3>
				{{msg|a |b}}
			</li>
			<li>
				<h3>全局过滤器的注册</h3>
				{{msg|a |b|c}}
			</li>
			</ul>
			
		</div>
		<script type="text/javascript">
			Vue.filter('c',(v)=>{
				return v.substr(0,1).toUpperCase()+v.substr(1,20)
			})
			new Vue({
				el:'#app',
				data(){
					return{
						msg:'https://blog.youkuaiyun.com/water_java'
					}
				},
				filters:{
					a(v){
						return v.substr(0,18).toUpperCase()
					},
					b(v){
						return v.substr(0,6).toLowerCase()+v.substr(6,12).toUpperCase()
					}
				}
			})
		</script>
	</body>
</html>

计算属性

计算属性可用于快速计算视图(View)中显示的属性。这些计算将被缓存,并且只在需要时更新
computed:{}

监听属性

监听属性 watch,我们可以通过 watch 来响应数据的变化
watch:{}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
		<title>计算机与监听属性</title>
	</head>
	<body>
		<div id="app">
			<ul>
			<li><h3>计算机属性</h3>
				苹果单价:<input  v-model="price"/><br />
				苹果数量:<input  v-model="num"/><br />
				小计:{{total}}
			</li>
			<li><h3>监听属性</h3>
				km:<input  v-model="km"/><br />
				m:<input  v-model="m"/><br />
			</li>
			
			</ul>
			
		</div>
		<script type="text/javascript">
			
			new Vue({
				el:'#app',
				data(){
					return{
						price:4.5,
						num:3,
						km:1,
						m:1000
						
					}
				},
				computed:{
					total(){
						return this.price*this.num
					}
				},
				watch:{
					km(v){
						this.m=v*1000
					},
					m(v){
						this.km=v/1000
					}
				}
				
			})
		</script>
	</body>
</html>

计算属性和监听属性的区别

computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理;
computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化

    举例:购物车里面的商品列表和总金额之间的关系,只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化。这里的这个总金额使用computed属性来进行计算是最好的选择 

computed与watch之间的区别:
watch主要用于监控vue实例的变化,它监控的变量当然必须在data里面声明才可以,它可以监控一个变量,也可以是一个对象

监听属性比计算属性复杂的多!因此在一个项目同时可以使用计算属性,methods和监听属性实现时候,我们优先使用计算属性其次是监听属性,最后选择methods!

数字设计实验:自动售货机 本文旨在介绍数字设计实验:自动售货机的设计思路和实现代码 阅读详情

相关推荐

Paypal开发者中心获取“ClientId”和“ClientSecret”参数

正式环境设置 1、登录到 paypal开发者中心 网址:https://developer.paypal.com/developer/ 点击右上角登录按钮登录 2、左侧栏 - 我的应用程序和凭证 - 点击“创建新应用” 新注册的paypal账号,需要进行邮箱验证,验证通过后,需要等待一段时间(或重新登录),才会出现相关设置项位置 验证邮箱通过后,点击创建新应用 3、按提示填写,保存创建应用 4、点击刚创建的应用进入应用详情页 5、应用详情页获得网站开发人员所需要的“ClientId”和“Client

龚清林的博客 1万+

2.1、模版语法

{{可以写什么}}

weixin_59152833的博客 1011

HUAWEI华为荣耀MagicBook MateBook B D E X 13 14 16 笔记本MateStation台式机原装Win10出厂Windows11系统

HUAWEI华为MateBookX原装出厂系统恢复原厂系统,型号:MACHC-WAE9LP、EUL-W29P、MACHR-W19L、MACHR-W29、MACHD-WFE9、MRGF-16、MACHR-W19BL、MACHD-WFE9Q、WT-W19、Mach-W19、Mach-W29、WT-W09、WT-W19、MACH-W29等。HUAWEI华为MateBookE原装出厂系统恢复原厂系统,型号:PAK-AL09、GK-W7X、GK-G58、GK-W76、DRC-W76等。

QQ17855069的博客 17万+

vue模板字符串标签动态参数_Vue 1(基本用法|模版语法|常用特性)

1.Vue 概述 p437Vue:渐进式JavaScript框架官网声明式渲染 → 组件系统(组件化开发模式) → 客户端路由(单页面的局部更新、历史回退) → 集中式状态管理(vuex) → 项目构建易用:熟悉HTML、CSS、JavaScript知识后,可快速上手vue灵活:在一个库和一套完整框架之间自如伸缩高效:20kB运行大小,超快虚拟DOM2.Vue 基本使用 p4382.1 传统开发模...

weixin_30873127的博客 1937

想在瑞芯微RK3588上跑视频分类模型?避开3D卷积这个坑,试试这几种NPU友好的方案

本文探讨了在瑞芯微RK3588上部署视频分类模型时如何避开3D卷积的性能陷阱,提供了三种NPU友好的替代方案:MobileNetV2+GRU组合、Temporal Shift Module(TSM)和帧级池化。这些方案在保持较高准确率的同时,充分利用RKNPU的硬件加速能力,显著提升推理效率。文章还分享了从模型转换到部署优化的完整流程和实战经验。

weixin_28724319的博客 417

告别玄学:用Multisim或LTspice仿真带你直观理解PFC的三种工作模式(CCM/DCM/CrM)

本文通过Multisim和LTspice仿真工具,详细解析了PFC(功率因数校正)的三种工作模式(CCM、DCM、CrM)的本质差异。从波形捕捉到参数优化,提供了实用的仿真技巧和工程实践策略,帮助工程师直观理解并优化PFC电路设计,提升THD和功率因数。

weixin_30363285的博客 393

Vue JAVA开发常用模板

用于快速生成固定的模板

weixin_67852890的博客 764

Anylogic试用版密匙

#$%99dTMbLIj+hm/c9fn0suWlfQjdK9FzRH8oSbR Rbm3FEeONkF5mDLKHxhscEDBANDg4BSU2Oi6hErk TH/KzwiCtsM0jfD50uRsj60+gi9ifTlduwcpSr6a GtVSilXwF997xTVAoMLddqOzGQAbnSjBiJOBdm1Z 0QwwIEJynvYgckLfoEADzncIgNnJjYshWcmGh3s9 gTgyuQPlRBeTXfb+ZJPI1JGi4sAUljwdB53Df+AX SEf5FaIbih

qq_43939616的博客 8264

Vue的常用参数

名称 描述 data() 该函数返回组件实例的 data 对象。 computed 计算属性将被混入到组件实例中。 methods methods 将被混入到组件实例中。 watch 一个对象,键是要侦听的响应式 property。 template 一个字符串模板,用作 component 实例的标记。 1. data() 该函数返回组件实例的 data 对象。 实例创建之后,可以通过 vm.$data 访问原始数据对象。 组件实例也代理

qq_34771938的博客 2993

Unity内存优化:从崩溃到流畅的终极指南

Emscripten 为 WebAssembly 设定的内存布局(Static、Stack 和 Heap)为开发者提供了一个清晰的内存管理框架。理解这些内存区域的特性和用途,有助于开发者在 WebGL 项目中更有效地管理内存,优化性能,减少内存使用峰值。在 Unity WebGL 中,Dynamic Memory 是 UnityHeap 的主要组成部分,负责存储游戏运行时所需的各种数据。Dynamic Memory 主要分为两类:Managed Memory 和 Native Memory。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 358

【YOLOv11多模态涨点改进】独家创新首发| TGRS 2026 |引入 CIFusion 通道交互融合模块,通过跨特征交互机制强化目标区域响应,适合多模态融合目标检测,小目标检测高效涨点

🔥本文提出了一种改进YOLOv11多模态目标检测模型的方法,通过引入CIFusion通道交互融合模块来提升RGB与红外特征融合效果。CIF模块采用通道级自适应交互机制,根据全局上下文动态分配不同模态通道的重要性,实现跨模态特征交互与互补信息融合。相比传统拼接或加权融合方式,CIF能够增强目标区域响应,抑制背景噪声,提高小目标和低对比度目标的检测性能。实验表明,该方法在DroneVehicle等数据集上显著提升了检测精度。论文还详细介绍了CIF模块的结构原理、实现代码及模型配置方法。

Ai缝合怪、助力小伙伴高效发论文 186

Vue语法模板(插值,指令,动态参数,过滤器,计算属性

分数:油粮茶v-showv-show油秀学员v-if油秀学员v-for{{h.name}}爱好将根据输入框输入的内容改变checkbox复选框的写法{{h.name}}

2401_84435192的博客 716

【Flink】Flink提交任务到Yarn报错Unable to close file because the last blockBP enough number of replicas

当使用 HDFS 存储文件时,每个数据块会有多个副本分布在不同的节点上,以确保数据的可靠性和容错性。然而,由于某种原因,最后一个数据块 blk_1101776325_28036289 的副本数量不足,导致无法成功关闭文件。如果确定副本数量正确,并且问题仍然存在,可以尝试手动修复副本不足的情况。异常消息表明在关闭文件时出现问题,我的原因是hadoop上有个节点有问题,导致提交到那个节点的时候,无法传递包到相关的机器上。检查 HDFS 集群的状态,确保所有节点都正常工作,没有节点宕机或网络故障等问题。

九师兄 934

Vuejs(一):Vuejs模板语法

Vuejs(一):Vuejs基础语法一:vuejs介绍 一:vuejs介绍 Vue (读音 /vjuː/,类似于 view) Vue是一个渐进式的框架,什么是渐进式的呢? 渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更丰富的交互体验。 或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。 比如Core+Vue-router+Vuex,也可以满足你各种各样...

1050

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Vue语法模板一

Vue语法模板一1. 模板语法1.1 插值1.1.1 文本1.1.2 html1.1.3 属性1.1.4 表达式1.1.5 代码块总写1.1.6 测试结果2. 指令2.1 核心指令2.1.1 代码块总写2.1.2 测试结果3. 参数4. 过滤器4.1 全局过滤器4.2 局部过滤器4.3 注意事项4.4 代码块总写4.5 测试结果5. 计算属性 与监听属性5.1 代码总写5.2 测试结果6. 小结 1. 模板语法 1.1 插值 1.1.1 文本 {{msg}} 1.1.2 html 使用v-html指令

Smootht的博客 429

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Vuejs学习(一)模板语法

1.基本步骤 (1)引入Vue.js 在官网下载Vue.js文件,然后用 <script type="text/javascript" src="Vue.js所在目录"></script> (2)数据填充标签 <script> var vm=new Vue({ el:''//id选择器 data:{xxx:xxx}//键值对填写数据 }) </scrip...

老简单题 209

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

vue模板语法一

vue模板语法文本html属性表达式指令 文本 <p>1.1 html title={{title}},{{ts}}</p> <script type="text/javascript"> var vm=new Vue({ el:'#acc', data:function(){ return{ title:'hello', ts:new Date().getTime() } } }) </scri

weixin_46241057的博客 184

Vue模板语法(一)

介绍了Vue的模板语法,对其使用方式进行了演示说明

凉茶铺的博客 1483

Vue入门(一)—— 模板语法

Vue.js 是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。 Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 什么是渐进式框架? 渐进式框架就是用你想用或者能用的功能特性,你不想用的部分功能可以先不用。VUE不强求你一次性接受并使用它的全部功能特性。 使用Vue将Hello World渲染到页面上 <body> <div id="app"> <div>{{msg}}</di

冰之沁泠的博客 874

vue模板语法(一)

1. 模板语法 1.1 插值 1.1.1 文本 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>vue的插值案例</title> <script src="https://cdn.bootcss.com/vue/2.6.10/vue.j...

weixin_45180769的博客 273

Vue模板语法(一)

前言:今天要分享的知识是Vue模板语法 码字不易,点个赞 转载请说明! 开发工具:HBuilderX 一、插值 ① 文本 {{msg}} ② html 使用v-html指令用于输出html代码 ③ 属性 HTML属性中的值应使用v-bind指令 ④ 表达式 Vue提供了完全的JavaScript表达式支持 {{str.substr(0,6).toU...

weixin_56069070的博客 260

Vue官网学习(模板语法:一、{{}}双大括号语法)

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。 这是官网对模板的介绍,今天就来学习一下Vue的模板语法: 1、文本“Mustache”语法 (双大括号) <span>Messa.

CoderOu 1万+
上一篇: ES6之函数
下一篇: VUE的模板语法(二)
water_java
博客等级 码龄7年 9粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值