双花括号文本插值

先来个最简单的例子,看完之后立马会用Vue了,是不是很有成就感

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- 引用官网的Vue.js库 -->
<script src="https://unpkg.com/vue"></script>
</head>
<body>
<!-- HTML部分 -->
<div id="app-1">
<!-- “mustache” 语法(双花括号)的文本插值 -->
<span>{{ content }}</span>
</div>
<!-- JS部分 -->
<script type="text/javascript">
var vm1 = new Vue({
el: '#app-1', //关联元素
data: {
content: 'Hello, TanSea!' //变量赋值
}
})
</script>
</body>
</html>

https://unpkg.com/vue是官方的地址,直接引用能随时保持使用的是最新版本,但是缺点是外国的网站,访问速度有点慢。当然也可以下载到本地来使用

这里Vue对象实例化仅仅给了2个参数,el(元素)和data(数据),其他的参数在后面的笔记中会说明

在浏览器的控制台输入vm1.content = 'Hello, World',对变量进行重新赋值,页面上的值也跟着一起变更。如果只需要第一次绑定,不要后续变更,可以使用v-once指令

给span标签添加v-once指令

<!-- HTML部分 -->
<div id="app-1">
<!-- 当变量发生变更时,内容不会随着更新 -->
<span v-once>{{ content }}</span>
</div>

Vue的所有指令约定都是以v-开头,包括之后的自定义指令也推荐使用这种命名习惯

原始HTML

<!-- HTML部分 -->
<div id="app-2">
<span v-html="rawHtml"></span>
</div>
<!-- JS部分 -->
<script type="text/javascript">
var vm2 = new Vue({
el: '#app-2',
data: {
rawHtml: '<div style="color: red">Hello, TanSea!</div>'
}
})
</script>

v-html指令直接插入原始HTML,直接插入HTML代码容易受到XSS攻击,不建议使用

属性

在HTML属性中无法使用“mustache” 语法了,需要使用v-bind指令,这也是Vue使用得最多的指令

<!-- HTML部分 -->
<div id="app-3">
<a v-bind:href="url" v-bind:target="target">双子宫殿</a>
</div>
<!-- JS部分 -->
<script type="text/javascript">
var vm3 = new Vue({
el: '#app-3',
data: {
url: 'http://www.tansea.cn',
target: '_blank'
}
})
</script>

使用v-bind指令绑定HTML属性,给HTML属性插值

JavaScript表达式

<!-- HTML部分 -->
<div id="app-4">
<span :id="'site-' + (id + 1)">{{ isVisible ? '我是可见的' : '我是隐藏的' }}</span>
</div>
<!-- JS部分 -->
<script type="text/javascript">
var vm4 = new Vue({
el: '#app-4',
data: {
id: 1,
isVisible: true
}
})
</script>

这里,我们看到了一个陌生的东西:id,他其实就是v-bind:id的简写方式

通过表达式的计算,span标签最终的结果是

<span id="site-2">我是可见的</span>

Vue目前只支持单条表达式,所以以下的示例都无法运行

<!-- 这是语句,不是表达式 -->
{{ var a = 1 }}
<!-- 流控制也无法运行,请使用三元表达式 -->
{{ if (ok) { return message } }}

如果熟悉拉姆达表达式的话,这一块的内容就很好理解了

双向绑定

双向绑定是Vue的一个最主要的功能,他能很方便的实现实时预览的效果

<!-- HTML部分 -->
<div id="app-5">
<p>{{ content }}</p>
<input v-model:value="content">
</div>
<!-- JS部分 -->
<script type="text/javascript">
var vm5 = new Vue({
el: '#app-5',
data: {
content: 'TanSea'
}
})
</script>

将input标签的值属性双向绑定到content上,当input标签的值属性发生改变时,p标签也会同步发生改变

Vue.js学习笔记 第一篇 数据绑定的更多相关文章

  1. vue.js学习系列-第一篇

    VUE系列一 简介    vue是一个兴起的前端js库,是一个精简的MVVM.从技术角度讲,Vue.js专注于 MVVM 模型的 ViewModel 层.它通过双向数据绑定把 View 层和 Mode ...

  2. vue.js学习系列-第一篇(代码)

    <html> <head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"> ...

  3. Vue.js学习笔记 第二篇 样式绑定

    Class绑定的对象语法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  5. ActionBarSherlock学习笔记 第一篇——部署

    ActionBarSherlock学习笔记 第一篇--部署          ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...

  6. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  7. Vue.js学习笔记:在元素 和 template 中使用 v-if 指令

    f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...

  8. Vue.js 学习笔记 第2章 数据绑定和第一个Vue应用

    本篇目录: 2.1 Vue实例与数据绑定 2.2 指令与事件 2.3 语法糖 学习任何一种框架,从一个Hello World应用开始是最快了解该框架特性的途径. 我们先从一段简单的HTML代码开始,感 ...

  9. Vue.js——学习笔记

    Vue-自学笔记 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...

随机推荐

  1. CentOS 6.5 Ruby源码安装

    清除旧版Ruby,若存在 yum remove ruby 若为源码,使用如下命令 cd <your-ruby-source-path> make uninstall 下面开始安装Ruby ...

  2. 利用微信小程序实现web监控界面

    1.实现思路 利用小程序去调用公司zabbix的接口获取网站监控数据并展示出来. 2.准备阶段 1.小程序公众号 2.企业号 3.zabbix接口 3.实现过程

  3. mac os 10.10.4 上安装mysql5.6.26

    在 Mac 系统上, 安装 MySQL Server 通常是用 DMG 包在图形化界面下按提示安装, 此外 MySQL 还提供了 Compressed TAR Archive 二进制包安装方式, 即免 ...

  4. Android-ViewPagerIndicator框架使用——LinePageIndicator

    前言:LinePageIndicator类似CirclePageIndicator,只是将圆点指示变成了长条指示. 一:使用是定义的布局文件simple_lines : <LinearLayou ...

  5. 一步步学习python

    python是一种功能比较强的脚本,尤其是在网络应用上,又称作:胶水语言.具体的简介可以在维基百科.百度百科等查得到他的发展史,有事一贯犹 如unix linux等老外打发无聊时间发明的强大工具,这是 ...

  6. web安全漏洞防护

    Password type input with autocomplete enabled The autocomplete attribute works with the following &l ...

  7. 三个内置模块shutil logging hashlib config

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 1 import shutil 2 3 shuti ...

  8. PHP中通过数组遍历找出最小值

    举例: $a = array(1,2,4,0,9,8,6);//定义一个数组 $len = count($a);//获取数组的长度 $min = $a[0];//默认情况下数组的第一个值是最小的 fo ...

  9. 【Python】Python获取命令行參数

    有时候须要用同一个Python程序在不同的时间来处理不同的文件,此时假设老是要到Python程序中去改动输入.输出文件名称.就太麻烦了. 而通过Python获取命令行參数就方便多了.以下是我写得一个小 ...

  10. 【BZOJ2707】[SDOI2012]走迷宫 Tarjan+拓扑排序+高斯消元+期望

    [BZOJ2707][SDOI2012]走迷宫 Description Morenan被困在了一个迷宫里.迷宫可以视为N个点M条边的有向图,其中Morenan处于起点S,迷宫的终点设为T.可惜的是,M ...