上节课模板是写在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. 测试第一个Oracle存储过程

    存储过程语句 //简单存储过程的例子 //每调用一次打印一次hello world create or replace procedure sayhelloworld as begin dbms_ou ...

  2. 51中xdata,idata,data,pdata的区别

    51系列中data,idata,xdata,pdata的区别 data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小. idata: 固定指前面0 ...

  3. GitHub总结

    1) 工作原理 2) 工作流程 clone资源到本地 更新本地资源 新增或修改clone的资源 查看状态 资源推送回github

  4. Python中表示中文的pattern

    Python中表示中文的pattern:[\u4e00-\u9fff] 汉字unicode码表: http://jlqzs.blog.163.com/blog/static/2125298320070 ...

  5. POJ 3279 Fliptile【枚举】

    题意: 又是农夫和牛的故事...有m*n个黑白块,黑块的背面是白块,白块背面是黑块,一头牛踩一块,则这个块的上下左右的方块都会转动,问至少踩多少块,才会使所有块都变成白色? 分析: 还是开关问题,同样 ...

  6. 洛谷 P2033 Chessboard Dance

    P2033 Chessboard Dance 题目描述 在棋盘上跳舞是件有意思的事情.现在给你一张国际象棋棋盘和棋盘上的一些子以及你的初始位置和方向.求按一定操作后,棋盘的状态. 操作有四种,描述如下 ...

  7. MongoDB小结10 - update【upsert】

    upsert是一个选项,它是update的第三个参数,并不是一个方法.它是一种特殊的更新,要是没有文档符合匹配,那么它就会根据条件和更新文档为基础,创建新的文档,如有匹配,则正常更新.咱们之前见到的所 ...

  8. Django学习系列之captcha 验证码插件

    安装部署 安装captcha pip3. install django-simple-captcha== settings.py中引入captcha INSTALLED_APPS = [ 'djang ...

  9. centos 命令行中 * 和 . 的区别

    錯誤    cp /home/test1/* /home/test2/ –a          用參數*將不可以複製linux中.開頭的隱藏文件 正確    cp /home/test1/. home ...

  10. 【大数据处理架构】1.spark streaming

    1. spark 是什么? >Apache Spark 是一个类似hadoop的开源高速集群运算环境  与后者不同的是,spark更快(官方的说法是快近100倍).提供高层JAVA,Scala, ...