上节课模板是写在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. Hdu 5274 Dylans loves tree (树链剖分模板)

    Hdu 5274 Dylans loves tree (树链剖分模板) 题目传送门 #include <queue> #include <cmath> #include < ...

  2. 60. Spring Boot写后感【从零开始学Spring Boot】

    从2016年4月15日到2016年7月20日经历长达3个月的时间,[从零开始学习Spring Boot]系列就要告一段落了.国内的各种资源都比较乱或者是copy 来copy去的,错了也不加以修正下,导 ...

  3. Node.js & module system

    Node.js & module system Node.js v10.9.0 Documentation https://nodejs.org/api/modules.html#module ...

  4. Jquery根据JSON生成Table

    先说下背景 本人属于juqery小白中的极品小白.基本对于JS jquery这些不懂.用到时候基本百度下 拿过来改改OK. 上面这东西让我弄了三天.可能对于其他人来说 一天就搞定了 .看来还真得去学一 ...

  5. [NOIP2006] 提高组 洛谷P1063 能量项链

    题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...

  6. Linux下汇编语言学习笔记65 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  7. zoj2479 Cover the Rectangular Ground

    肯定是dfs搜一下的,但是呢存在一个很大的剪枝,也就是面积必定要是相等的,那么如何去操作呢,可以想到的是二进制枚举选取的方法,然后把方法中选取的矩形面积求和并判断一下即可,然后dfs搜索,要注意的是, ...

  8. Maximum Product Subarray(最大连续乘积子序列)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  9. hdu oj 3127 WHUgirls(2009 Asia Wuhan Regional Contest Online)

    WHUgirls Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total ...

  10. nodejs参考文章

    http://www.cnblogs.com/lily1010/p/6683987.html https://manlili.github.io/2015/04/06/Node%E5%85%A5%E9 ...