Vue.js(四)

2023-11-12

Vue.js 模板语法

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 > 菜鸟教程 </ 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 " > 菜鸟教程 </ div > </ div > < script > new Vue({ el: '#app', data: { ok: true, message: 'RUNOOB', 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 " > 菜鸟教程 </ a > </ pre > </ div > < script > new Vue({ el: '#app', data: { url: 'http://www.runoob.com' }}) </ 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: 'Runoob!' }}) </ script >

尝试一下 »

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

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

字符串反转

< div id = " app " > < p > {{ message }} </ p > < button v-on:click = " reverseMessage " > 反转字符串 </ button > </ div > < script > new Vue({ el: '#app', data: { message: 'Runoob!' }, 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: 'runoob' }, 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`  改变后调用
})

笔记列表

  1.    苏安年

      188***625@qq.com

    给元素绑定href时可以也绑一个target,新窗口打开页面。

    new Vue({
      el: '#app',
      data: {
        url: 'http://www.runoob.com',
        target:'_blank'
      }
    })

    尝试一下 »

    苏安年

       苏安年

      188***625@qq.com

    3个月前 (09-27)
  2.    锋

      cka***ng@qq.com

       参考地址

    当我们给一个比如 props 中,或者 data 中被观测的对象添加一个新的属性的时候,不能直接添加,必须使用 Vue.set 方法。

    Vue.set 方法用来新增对象的属性。如果要增加属性的对象是响应式的,那该方法可以确保属性被创建后也是响应式的,同时触发视图更新

    这里本来 food 对象是没有 count 属性的,我们要给其添加 count 属性就必须使用 Vue.set 方法,而不能写成 this.food.count = 1

       锋

      cka***ng@qq.com

       参考地址

    3个月前 (10-19)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue.js(四) 的相关文章

随机推荐

  • 图形学理论知识 BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)...

    图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF理论 BRDF表示的是双向反射分布函数 Bidirectional Reflectance
  • SingleTask启动模式与HOME键问题

    Android中Activity启动模式SingleTask时点击Home键问题 http blog csdn net java201159416 article details 51992249
  • 为什么阿里会推荐所有的局部变量使用基本数据类型?

    Java中共有三种变量 分别是类变量 成员变量和局部变量 他们分别存放在JVM的方法区 堆内存和栈内存中 public class Variables 类变量 private static int a 成员变量 private int b
  • 详解七大排序算法

    对于排序算法 是我们在数据结构阶段 必须要牢牢掌握的一门知识体系 但是 对于排序算法 里面涉及到的思路 代码 各种时间复杂度等 都需要我们 记在脑袋瓜里面 尽量一丢丢不要出现差错 面试所必备的精彩提问 言归正传 对于排序 我们首先需要知道的
  • 《统计学习方法》第一版课后习题答案--深度之眼课程

    作业1 参考文章 https blog csdn net qq 37098526 article details 89516974 极大似然估计 贝叶斯估计 作业2 思考感知机模型假设空间是什么 模型复杂度体现在哪里 2 已知训练数据集D
  • OLAP和OLTP的区别,了解哪些OLAP工具

    OLAP 联机分析处理 online analytical processing是一种软件技术 它使分析人员能够迅速 一致 交互地从各个方面观察信息 以达到深入理解数据的目的 从各方面观察信息 也就是从不同的维度分析数据 因此OLAP也称为
  • 三子棋(简单版)

    1 如何构思三子棋 写三子棋 程序主要包括游戏菜单 三子棋的棋盘 比较麻烦的 玩家下棋和电脑自动下棋四部分构成 2 游戏菜单 游戏菜单比较简单 只需要几行printf的代码即可 这里我选择输入1就是玩游戏 输入0就是退出游戏 void me
  • JS HTML CSS 前端页面生成电脑桌面壁纸?(动态可交互)

    1 先看效果 2 设计网页 你们可以自己设计网页或者去网上找好的网页 甚至可以直接用百度放到桌面是可以搜索的 自己写的网页可以放服务器也可以本地 本地连接后无法编辑 3 下载应用 电脑左下角搜索 Lively 点上面应用 然后进入Micro
  • Tkinter界面动态显示变化数值

    例举字符串StringVar 和整型IntVar var tk StringVar 或 var tk IntVar var set 设置 var get 获取 1 整型IntVaVar IntVar 要配合控件便使用 import tkin
  • 如何给C盘扩容?不用软件,把其他盘的空间分给C盘即可(图文详解)

    目录 1 打开磁盘管理器 2 将其他盘分盘 3 扩容 1 打开磁盘管理器 此电脑 gt 管理 gt 磁盘管理 2 将其他盘分盘 压缩卷 3 扩容 1 将与C盘邻近的分盘删除 注 给一个盘扩容 只能将这个盘后一个盘的空间分给它 2 C盘扩展卷
  • 小米主题显示服务器不可用,小米主题商店 小米主题怎么混搭

    小米主题商店中有非常多种类齐全的主题可以下载 无论是免费的还是收费的都是有一堆 不过一些刚刚买小米手机的用户还不清楚小米主题要怎么进行混搭 所以今天就来为大家详细的介绍一下小米主题商店中进行混搭主题的教程 小米主题商店 小米主题怎么混搭 1
  • JAVA 通过浏览器下载大文件导致OOM

    背景 Response 获取的对象为 ContentCachingResponseWrapper 页面点击下载文件 后台报错如下 org springframework web util NestedServletException Han
  • 关于oss使用sts 后台签发临时token前端直传大文件的错误记录

    文章目录 前言 遇到的问题 1 NoSuchBucket The specified bucket does not exist 2 com aliyuncs exceptions ClientException InvalidParame
  • tp5的分页方法 paginate

    tp5的分页方法paginate 一共有三个参数 其中 listRows可以为整型或者数组 当是数组的时候 你传入的 config就会失效 原因是 paginate的源代码 所以说 如果你想重新配置参数 那 listRows就传数组 否则的
  • 【ffmpeg基础】视频滤波处理

    ffmpeg版本 ffmpeg version 5 1 2 Copyright c 2000 2022 the FFmpeg developers 一 视频缩放滤波器 视频的滤波器通常使用 vf video filters 来设置滤波器 也
  • GDI 绘图

    目录 GDI 绘图 画点 画线 画封闭图形 画笔 画刷 其他 DC Device Context 绘图设备 HDC 绘图设备句柄 GDI Microsoft Graphics Device Interface Win32提供的绘图API G
  • python变量与作用域

    变量从作用域分类 作用范围从小到大为 小作用域的可以调用大作用域的内容 局部 Local 闭包 Enclosing 全局 Global 内建 Build in 局部变量 局部变量是定义在函数中的 因此其作用域是在函数内部 def examp
  • Opencv2.4.2+vs2008+windowsXP(32位)安装过程

    Opencv2 4 2 vs2008 windowsXP 32位 安装过程 准备软件 opencv2 4 2 VS2008软件 1 解压opencv2 4 2到指定路径 例如 D Program Files OpenCV2 4 2 2 打开
  • Https + OPENSSL

    二 HTTPS 2 1 HTTPS介绍 先来看HTTPS的概念 我们一般的http走的是80端口 而https走的是443端口 有什么不一样的地方吗 很简单 我们拿个telnet命令来作个实验 telnet127 0 0 1 80 直接就登
  • Vue.js(四)

    Vue js 模板语法 Vue js 使用了基于 HTML 的模版语法 允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据 Vue js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统 结合响应系统 在