上节课模板是写在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. 一个关于vue+mysql+express的全栈项目(一)

    最近学了mysql数据库,寻思着能不能构思一个小的全栈项目,思来想去,于是就有了下面的项目: 先上几张效果图吧       目前暂时前端只有这几个页面,后端开发方面,有登录,注册,完善用户信息,获取用 ...

  2. 集训第四周(高效算法设计)D题 (区间覆盖问题)

    原题 UVA10020  :http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19688 经典的贪心问题,区间上贪心当然是右区间越 ...

  3. 慕课笔记利用css进行布局【一列布局】

    <html> <head> <title>一列布局</title> <style type="text/css"> bo ...

  4. 全文搜索(A-3)-用户建模

    用户模型可以分为静态模型.动态模型.混合推荐用户模型. 静态模型往往通过显式方式收集用户偏好信息: 动态模型通过隐式方式收集用户偏好信息: 基于内容的用户系统的推荐模型: 关键字匹配,空间向量模型 协 ...

  5. HDU1166 线段树裸题 区间求和

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. JSP操作

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/actions.html: JSP操作(Action)使用XML语法结构来控制Servlet引擎的行为.可 ...

  7. 怎么让Excel显示时间时候能把秒显示出来

    Excel显示时间一般只显示年月日小时分钟怎么能够把秒也显示出来既如下显示 2007-04-11 12:00:00 将单元格格式设为"自定义",在"类型"框中输 ...

  8. [AngularJS] Store the entry url and redirect to entry url after Logged in

    For example when a outside application need to visit your app address: https://www.example.com/#/lob ...

  9. 初探FFT在数字图像处理中的应用(fft2函数的用法)

    初探FFT在数字图像处理中的应用 一般FFT在通信等领域都做的一维变换就能够了.可是在图像处理方面,须要做二维变换,这个时候就须要用到FFT2. 在利用Octave(或者matlab)里面的fft2( ...

  10. 卸载MySQL 5.0

    昨天在Navicat for mysql中导入一个脚本,执行.出现乱码. 考虑到可能是版本号问题,就想卸载了又一次安装MYSQL,这一卸载倒是出了问题.导致安装的时候安装不上. 后来无意发现是卸载的时 ...