上节课模板是写在Vue的实例里面的,现在我们可以把它恢复出来。写在挂载点的内部,看起来会舒服一点。Vue的数据项,可以配置任意的数据名字。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<h1>{{number}}</h1>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
number:123//
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

{{number}}插值表达式,把number这个值插入到h1之中。这个语法就是插值表达式。v-text这个指令,它的意思是h1它的内容由number这个变量决定。v-text是Vue之中的一个指令。这个指令里面跟的东西是一个变量,它告诉h1你要显示的内容就是number这个变量。这个时候页面的内容依然是123。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<h1 v-text="number"></h1>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
number:123//
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

v-html也可以

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<h1 v-html="number"></h1>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
number:123//
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

v-html和v-text这个Vue中的指令它有什么区别呢?

这个时候h1是被转义过后的一个内容。因为这个标签已经被转义了,所以它输出在页面上的时候会连h1一起输出。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<div v-text="content"></div>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
//msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
//number:123//
content: "<h1>hello</h1>"
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

如果把v-text换成v-html

这个时候输出的h1是没有被转义过的h1标签。所以v-text和v-html这两个模板指令区别就在于v-html不会转义,而v-text会进行一次转义。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<div v-html="content"></div>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
//msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
//number:123//
content: "<h1>hello</h1>"
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

data里面对应的数据如何显示到模板上大概有一个感觉了。如何给模板上的一个标签绑定一个事件?假设我希望这个div标签被点击了之后页面上的内容由hello变成world,怎么办?再说一个指令,这个指令是模板指令,指的是它写在模板标签里面。我希望点击一下hello,这个hello变成world。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<div id="root">{{content}}</div>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
//msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
//number:123//
content: "hello"
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

如何做?先绑定点击事件。v-on:是一个新的模板指令,指的是向这个div标签上面你要绑定一个事件。:后面加一个click,指的是绑定一个click事件。当这个click事件被执行的时候,后面要跟一个函数。我呢直接写一个箭头函数吧。也就是这个div标签被点击的时候,会执行里面的这个函数。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title> <!--这个库要放在head部分去引入,这样做会避免页面出现抖屏的一个情况-->
<script type="text/javascript" src="./vue.js"></script>
</head>
<body>
<!--挂载点,模板,实例之间的关系--> <div id="root">
<!--
<h1>hello {{msg}}</h1>
-->
<div id="root">
<div v-on:click="()=>{alert(123)}">
{{content}}
</div>
</div>
</div>
<!--引入了vue.js这个库,还没有真正使用这个库--> <script type="text/javascript">
new Vue({
// 创建一个Vue的实例,创建Vue的实例的时候我们可以传递一个参数给这个Vue的实例
// el:"" 我让Vue这个实例去接管页面上的哪一个element(元素)
el: "#root", //所以这个Vue实例就和这一个DOM做好了绑定 DOM:<div id="root">hello world</div>
// el是指我这个Vue实例是和哪一个DOM节点做绑定 #是指id=root的DOM元素
// 创建Vue实例的时候,传递了一个大的参数进去,这个大的参数里面有一个el参数:挂载点,它让这个Vue实例去处理id=root这块区
// 域的内容,所以这个实例的挂载点就是id=root的这个标签 //template: '<h1>hello {{msg}}</h1>',
data: {//这个Vue实例里面会有一些数据
//msg: "hello world3", //Vue实例已经接管了这个标签的内容,或者说已经和这个标签做了绑定.那么在这个标签上其实就可以去
//使用这个Vue实例里面的这个msg数据了。
//number:123//
content: "hello"
}
})
//在没有Vue之前我们写原生或者jquery的时候都是这样去写代码的,我们手动的去处理DOM
//var dom = document.getElementById("root")
//dom.innerHTML = "hello world"
//在Vue里面写代码和以前不一样
//在div标签里面声明需要使用一个msg的数据,创建一个Vue的实例,定义好了这个msg的数据,然后让这个Vue的实例通过el把Vue实例和
//这个标签做一个绑定,那么msg的数据就会自动显示到这个div的标签里面
</script>
</body>
</html>

浏览器报错了。alert方法找不到。在这个Vue实例上面找不到。

这个时候你写这个箭头函数实际上是有问题的,我们可以换一个写法。handleClick方法还没有写。如果你希望在

2-3 Vue实例中的数据,事件和方法的更多相关文章

  1. Vue学习之vue实例中的数据、事件和方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Vue 实例中的生命周期钩子

    Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...

  3. 详解Vue 实例中的生命周期钩子

    Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...

  4. Vue实例对象的数据选项

    前面的话 一般地,当模板内容较简单时,使用data选项配合表达式即可.涉及到复杂逻辑时,则需要用到methods.computed.watch等方法.本文将详细介绍Vue实例对象的数据选项 data ...

  5. Vue实例 中的常用配置项

    创建Vue实例时,使用 new Vue ({//配置项}) 或者 组件定义中 export default {//配置项},所有的Vue组件都是Vue实例,并且接受相同的选项对象(一些根实例特有的选项 ...

  6. Vue实例对象的数据选项(火柴)

    前言 一般地,当模板内容比较简单的时候,使用data选项配合表达式即可.涉及到复杂逻辑时,则需要用到methods.computed.watch等方法.本文将详细介绍Vue实例对象的数据选项. dat ...

  7. PatentTips - 在物联网中进行数据过滤的方法和装置

    背景技术 [0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置. [0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络.具体地,物联网是指通过各种信息传感设备,如 ...

  8. 关于VUE调用父实例($parent) 根实例 中的数据和方法

    this.$parent或者 this.$root 在子组件中判断this.$parent获取的实例是不是父组件的实例 在子组件中console.log(this.$parent)  在父组件中con ...

  9. vue实例中created、mounted以及其他类型说明

    生命周期图示(图片来自coderwhy老师): 每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后 ...

随机推荐

  1. jmeter 接口测试

    web接口测试工具: 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开源).soupUI(开源&商业版). 下面将对前一篇Postman做接口测试中的接口用Jmeter ...

  2. STM32——NVIV:嵌套中断向量控制器

    STM32有43个channel的settable的中断源:AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits.这4个b ...

  3. Uva 1103 古代象形符号(dfs求连通块, floodfill, 进制转换)

    题意: 给定一个H行W列的字符矩阵(H<200, W < 50), 输入的是一个十六进制字符, 代表一行四个相邻的二进制, 1代表像素, 0代表没有像素. 然后要求判断输入的是以下哪些图形 ...

  4. ASP.NET MVC的帮助类HtmlHelper和UrlHelper

    在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ...

  5. js变量类型详解

    <html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...

  6. Automation 的 Wait 工具

    public static WebDriverWait createWait(WebDriver driver) { return new WebDriverWait(driver, Environm ...

  7. python-gzip解压缩(实验吧SOS)

    本题看着很简单,就是在弄出来的老是乱码,看了pcat的wp还是不行,下面的评论说可能是python版本问题,改版本太麻烦,试了一下先gzip解压,得到的文件在打开就不是乱码了,代码如下: # -*- ...

  8. Python基础之 一

    语言分类:编译型(运行前先编译)和解释型(直接运行),静态语言(需要声明变量类型)和动态语言(不需要声明),强类型定义语言(定义好类型不做强制转换就不可修改类型)和弱类型定义语言(数据类型可以被忽略) ...

  9. CDOJ1339 郭大侠与线上游戏(维护一个set中的中位数——平衡树/双set)

    http://acm.uestc.edu.cn/#/problem/show/1339 题意:有三种操作,分别是. 1.向队列推入一个数x. 2.弹出这个队列的第一个数字 3.查询这个队列的中位数是多 ...

  10. Java电商项目-6.实现门户首页数据展示_Redis数据缓存

    目录 项目的Github地址 需求介绍 搭建Redis集群环境 下面先描述单机版redis的安装 下面将进行Redis3主3从集群环境搭建 基于SOA架构, 创建门户ashop-portal-web门 ...