Vue 模板语法

news2025/1/18 20:09:47

文章目录

  • Vue 模板语法
    • 插值
      • 文本
      • Html
      • 属性
      • 表达式
    • 指令
      • 参数
      • 修饰符
    • 用户输入
    • 过滤器
    • 缩写
      • v-bind 缩写
      • v-on 缩写
    • Vue 实例
      • 构造器
      • 属性与方法


Vue 模板语法

在这里插入图片描述

Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。

Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。

结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

插值

文本

数据绑定最常见的形式就是使用 {{…}}(双大括号)的文本插值:

文本插值

<div id="app">
  <p>{{ message }}</p>
</div>

Html

使用 v-html 指令用于输出 html 代码:

v-html 指令

<div id="app">
    <div v-html="message"></div>
</div>
     
<script>
new Vue({
  el: '#app',
  data: {
    message: '<h1>csdn博客</h1>'
  }
})
</script>

属性

HTML 属性中的值应使用 v-bind 指令。

以下实例判断 class1 的值,如果为 true 使用 class1 类的样式,否则不使用该类:

v-bind 指令

<div id="app">
  <label for="r1">修改颜色</label><input type="checkbox" v-model="class1" id="r1">
  <br><br>
  <div v-bind:class="{'class1': class1}">
    directiva v-bind:class
  </div>
</div>
     
<script>
new Vue({
    el: '#app',
  data:{
      class1: false
  }
});
</script>

表达式

Vue.js 都提供了完全的 JavaScript 表达式支持。

JavaScript 表达式

<div id="app">
    {{5+5}}<br>
    {{ ok ? 'YES' : 'NO' }}<br>
    {{ message.split('').reverse().join('') }}
    <div v-bind:id="'list-' + id">csdn博客</div>
</div>
     
<script>
new Vue({
  el: '#app',
  data: {
    ok: true,
    message: 'CSDN',
    id : 1
  }
})
</script>

指令

指令是带有 v- 前缀的特殊属性。

指令用于在表达式的值改变时,将某些行为应用到 DOM 上。如下例子:

实例

<div id="app">
    <p v-if="seen">现在你看到我了</p>
</div>
     
<script>
new Vue({
  el: '#app',
  data: {
    seen: true
  }
})
</script>

这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。

参数

参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性:

实例

<div id="app">
    <pre><a v-bind:href="url">csdn博客</a></pre>
</div>
     
<script>
new Vue({
  el: '#app',
  data: {
    url: 'http://www.csdn.net'
  }
})
</script>

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

另一个例子是 v-on 指令,它用于监听 DOM 事件:

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

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

修饰符

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

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

用户输入

在 input 输入框中我们可以使用 v-model 指令来实现双向数据绑定:

字符串反转

<div id="app">
    <p>{{ message }}</p>
    <input v-model="message">
</div>
     
<script>
new Vue({
  el: '#app',
  data: {
    message: 'CSDN!'
  }
})
</script>

按钮的事件我们可以使用 v-on 监听事件,并对用户的输入进行响应。

以下实例在用户点击按钮后对字符串进行反转操作:

字符串反转

<div id="app">   
  <p>{{ message }}</p>   
  <button v-on:click="reverseMessage">反转字符串</button></div>   
<script>new Vue({ el: '#app',
     data: {   message: 'CSDN!' 
    },
     methods: {   reverseMessage: function() {     this.message = this.message.split('').reverse().join('')   
      } 
    }
  })</script>

过滤器

Vue.js 允许你自定义过滤器,被用作一些常见的文本格式化。由"管道符"指示, 格式如下:

<!-- 在两个大括号中 -->
{{ message | capitalize }}
 
<!-- 在 v-bind 指令中 -->
<div v-bind:id="rawId | formatId"></div>

过滤器函数接受表达式的值作为第一个参数。

以下实例对输入的字符串第一个字母转为大写:

实例

<div id="app">
  {{ message | capitalize }}
</div>
     
<script>
new Vue({
  el: '#app',
  data: {
    message: 'csdn'
  },
  filters: {
    capitalize: function (value) {
      if (!value) return ''
      value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    }
  }
})
</script>

过滤器可以串联:

{{ message | filterA | filterB }}

过滤器是 JavaScript 函数,因此可以接受参数:

{{ message | filterA('arg1', arg2) }}

这里,message 是第一个参数,字符串 ‘arg1’ 将传给过滤器作为第二个参数, arg2 表达式的值将被求值然后传给过滤器作为第三个参数。

缩写

v-bind 缩写

Vue.js 为两个最为常用的指令提供了特别的缩写:

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>

v-on 缩写

<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>

Vue 实例

构造器

每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例来启动的:

var vm = new Vue({
  // 选项
})

属性与方法

每个 Vue 实例都会代理其 data 对象里所有的属性:

var data = { a: 1 }
var vm = new Vue({
  data: data
})
vm.a === data.a // -> true
// 设置属性也会影响到原始数据
vm.a = 2
data.a // -> 2
// ... 反之亦然
data.a = 3
vm.a // -> 3

除了 data 属性, Vue 实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的 data 属性区分。例如:

var data = { a: 1 }
var vm = new Vue({
  el: '#example',
  data: data
})
vm.$data === data // -> true
vm.$el === document.getElementById('example') // -> true
// $watch 是一个实例方法
vm.$watch('a', function (newVal, oldVal) {
  // 这个回调将在 `vm.a`  改变后调用
})

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

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

相关文章

『OPEN3D』1.7 Ray Casting

1 ray casting ray casting(光线衍射) 和 ray tracing(光线追踪)都属于计算机图形学内的基础方法&#xff1b;用于对三维的实体建模和图片渲染&#xff1b;ray casting一词来自于General Motors Research Labs from 1978–1980&#xff1b;出自论文《Ray Casting for Modeling …

软件测试金融项目经验总结,面试题都问什么?接口加解密如何处理?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 加/解密接口的处理…

JAVA数据结构之顺序表、单向链表及双向链表的设计和API实现

一、顺序表 顺序表在内存中是数组的形式存储 类名SequenceList构造方法SequenceList(int capacity)&#xff1a;创建容量为capacity的SequenceList对象成员方法1. public void clear()&#xff1a;空置线性表 2. public boolean isEmpty()&#xff1a;判断线性表是否为空&…

浅谈java网络编程及RPC框架

目录 1.计算机网络 2.TCP/IP协议 3.UDP协议 4.RPC框架 1.计算机网络 从资源共享的角度上来说&#xff0c;计算机网络就是以能够相互共享资源的方式互连起来的自治计算机系统的集合。网络建立的主要目的是实现计算机资源的共享。 目前来说&#xff0c;计算机网络分为两大模…

JRE和JDK 及 常用DOS命令

JRE和JDK Java程序开发的三个步骤 ●编写代码 ●编译代码 ●运行代码 1.编写代码 A.txt JRE : JRE是Java Runtime Environment缩写&#xff0c;指Java运行环境&#xff0c;包含JVM虚拟机及Java核心类库。 类&#xff1a;java文件在代码中的集合体现( 类java文件&#xf…

CAD转SHP最好的方法 赶快收藏起来吧

1、利用 ArcToolsbox 工具先将 DWG 文件转为 MDB 通过 CASS 软件生成的 DWG 文件&#xff0c;字段中包含有很多属性内容&#xff0c;所以我们先将 DWG 格式 的文件转换为 MDB 格式&#xff0c;再通过 MDB 转换为 SHP 格式数据进行整理。具体步骤如下&#xff1a; 通过 ArcTool…

jenkins——凭据管理

这里写目录标题 一、Jenkins 凭据管理1、凭据管理入口2、凭据的新增3、用户名和密码方式的凭据配置4、SSH密钥方式的凭据配置5、凭据的更新和删除6、凭据的使用 一、Jenkins 凭据管理 凭据管理的作用&#xff1a;管理ssh、邮箱、git等认证信息 1、凭据管理入口 Dashboard —…

深度学习实战24-人工智能(Pytorch)搭建transformer模型,真正跑通transformer模型,深刻了解transformer的架构

大家好&#xff0c;我是微学AI&#xff0c;今天给大家讲述一下人工智能(Pytorch)搭建transformer模型&#xff0c;手动搭建transformer模型&#xff0c;我们知道transformer模型是相对复杂的模型&#xff0c;它是一种利用自注意力机制进行序列建模的深度学习模型。相较于 RNN 和…

【微信小程序】数据监听器,纯数据字段

一、数据监听器 1.1 什么是数据监听器 数据监听器用于 监听和响应任何属性和数据字段的变化&#xff0c;从而执行特定的操作 。它的作用类似于 vue 中 的 watch 侦听器。在小程序组件中&#xff0c; 在componets中新建一个test2文件夹在文件夹里新建component 在app.json …

C学习笔记3

1、将一个整数转换成二进制形式&#xff0c;就是其原码。&#xff08;通俗的理解&#xff0c;原码就是一个整数本来的二进制形式。&#xff09; 例如short a 6;a 的原码就是0000 0000 0000 0110 2、反码就区分正负数&#xff0c;因为正负数的反码是不一样的&#xff0c;正数…

2023年MathorCup数模D题赛题解题思路

MathorCup俗称妈杯&#xff0c;是除了美赛国赛外参赛人数首屈一指的比赛&#xff0c;而我们的妈杯今天也如期开赛。今年的妈杯难度&#xff0c;至少在我看来应该是2023年截至目前来讲最难的一场比赛。问题的设置、背景的选取等各个方面都吐露着我要难死你们的想法。难度是恒定的…

Euro-NCAP 2030愿景

每隔五年,Euro NCAP都会将利益相关者聚集在一起,研究当前的汽车技术现状,预测未来几年可能的挑战,并确定未来的机会所在。讨论的结果是该组织的未来发展方向和明确的未来愿景:Euro NCAP 2030年愿景。 2020年初,Euro NCAP开始制定一套新的战略目标,打算在下一年公布其《2…

STM-32:SPI通信协议/W25Q64简介—软件SPI读写W25Q64

目录 一、SPI简介1.1电路模式1.2通信原理1.3SPI时序基本单元1.3.1起始和终止1.3.2交换字节 二、W25Q642.1W25Q64简介2.2W25Q64硬件电路2.3W25Q64框图2.4Flash操作注意事项 三、软件SPI读写W25Q643.1接线图3.2程序代码 一、SPI简介 SPI是串行外设接口&#xff08;Serial Periph…

Spring Boot异步任务、异步消息

目录 1.异步任务 1.1.概述 1.2.使用 2.异步消息 2.1.概述 2.2.使用 1.异步任务 1.1.概述 举一个例子&#xff0c;我现在有一个网上商城&#xff0c;客户在界面点击下单后&#xff0c;后台需要完成两步&#xff1a; 1.创建客户订单 2.发短信通知客户订单号 这里面第2…

selenium 连接已经打开的chrome浏览器 MAC

selenium 连接已经打开的chrome浏览器 MAC 一&#xff0c;前言 今天在爬取chatGPT的谷歌插件的prompts的时候&#xff0c;发现绕不过他的反爬机制&#xff0c;失败111&#xff0c;所以想用连接已打开的chatGPT页面进行控制 二&#xff0c;具体步骤 1&#xff0c;添加环境变…

Android入门

一、Android系统架构 Android大致可以分为4层架构&#xff1a;Linux内核层、系统运行库层、应用框架层和应用层 1.1Linux内核层 Android系统是基于Linux内核的&#xff0c;这一层为Android设备的各种硬件提供了如显示、音频、照相机、蓝牙、Wi-Fi等底层的驱动。 1.2系统运行层…

2023MathorCup 高校数学建模挑战赛D题思路解析

如下为MathorCup 高校数学建模挑战赛D题思路解析&#xff1a; D 题 航空安全风险分析和飞行技术评估问题 飞行安全是民航运输业赖以生存和发展的基础。随着我国民航业的快速发展&#xff0c;针对飞行安全问题的研究显得越来越重要。2022 年 3 月 21 日&#xff0c;“3.21”空难…

如何使用vim的插件Ctags查看Linux源码

一.ubuntu下安装Linux内核源码 (1).查看自己的内核版本 (2).查看源内的内核源码类表 (3).下载源码 (4).进入/usr/src (5).解压下载的文件到用户主 二.安装vim插件Ctags和使用 插件的介绍 Ctags工具是用来遍历源代码文件生成tags文件&#xff0c;这些tags文件能被编辑器或其它工…

2023年的深度学习入门指南(4) - 在你的电脑上运行大模型

2023年的深度学习入门指南(4) - 在你的电脑上运行大模型 上一篇我们介绍了大模型的基础&#xff0c;自注意力机制以及其实现Transformer模块。因为Transformer被PyTorch和TensorFlow等框架所支持&#xff0c;所以我们只要能够配置好框架的GPU或者其他加速硬件的支持&#xff0…

同为科技(TOWE)防雷科普篇1—雷电灾害认识与雷电预警信号解读

前 言 雷电是自然界最为壮观的大气现象之一。其强大的电流、炙热的高温、猛烈的冲击波以及强烈的电磁辐射等物理效应能够在瞬间产生巨大的破坏作用&#xff0c;常常导致人员伤亡&#xff0c;击毁建筑物、供配电系统、通信设备&#xff0c;造成计算机信息系统中断&#xff0c;引…