1、hello vue.js!

(1)引入vue.js

<script type="text/javascript" src="js/vue.js"></script>

(2)创建要绑定vue组件的元素,这里制定为id为"dr01"的div

<div id="dr01">
<!-- 这里的双大括号表示从绑定的vue实例中取值vue_dr01 -->
<p>{{vue_dr01}}</p>
</div>

(3)通过<script>标签创建vm实例

var dr01 = new Vue({
//将初始化的vue组件映射到id为"dr01"的标签中
  el: "#dr01",
  //初始化数据,这里定义了一个名称为"vue_dr01"的字符串对象。
data: {
vue_dr01: "hello vue.js!"
}
});

(4)结果

  


2、数据双向绑定

(1)引入vue.js

<script type="text/javascript" src="js/vue.js"></script>

(2)创建要绑定vue组件的元素,这里制定为id为"dr02"的div

<div id="dr02">
<p>{{ytCode}}</p>
<input type="text" v-model="ytCode" />
</div>

解释:输入框v-model="ytCode"属性将当前元素的值与vue组件中的ytCode绑定,当一方发生变化后,在vue组件中所有引用ytCode的地方都会发生变化,

这里当input输入框的信息发生更改后,p标签的{{ytCode}}也会跟随渲染更新数据

(3)通过<script>标签创建vm实例

var dr02 = new Vue({
el: "#dr02",
data: {
ytCode: 500331584514
}
});

(4)结果

  初始化的数据

  

  更改输入框内的数据,<p>标签内的内容也会根据发生变化

  


3、渲染列表

(1)引入vue.js

<script type="text/javascript" src="js/vue.js"></script>

(2)创建要绑定vue组件的元素,这里制定为id为"dr03"的div

<div id="dr03">
<ul>
<li v-for="book in books">
{{"name: "+book.name+"; price: "+book.price+"."}}
</li>
</ul>
</div>

v-for="book in books"将会从vue实例中取出books(数组)遍历,遍历的时候将数组中的每一个对象定义为book。

{{book.name}}表示从book中取出name属性的值,{{book.price}}表示从book中取出price属性的值

(3)通过<script>标签创建vm实例

var dr03 = new Vue({
el: "#dr03",
data: {
books: [{
name: "book01",
price: "price01"
}, {
name: "book02",
price: "price02"
}, {
name: "book03",
price: "price03"
}]
}
});

(4)结果

  


4、事件的处理

(1)引入vue.js

<script type="text/javascript" src="js/vue.js"></script>

(2)创建要绑定vue组件的元素,这里制定为id为"dr04"的div

<div id="dr04">
<p>{{dr04_msg}}</p>
<button v-on:click="reverseMsg">reverseMsg</button>
</div>

v-on:click将会绑定当前标签的click事件,这个事件与vue实例中methods属性中的reverseMsg相对应。

(3)通过<script>标签创建vm实例

var dr04 = new Vue({
el: "#dr04",
data: {
dr04_msg: "this is dr04 message!"
},
methods: {
reverseMsg: function() {
this.dr04_msg = this.dr04_msg.split("").reverse().join("");
}
}
});

创建vue实例的时候初始化一个“reverseMsg”的事件,作用是将dr04_msg的值倒序。

(4)结果

点击按钮之前

  

点击按钮之后

  


整合在一起的示例:

<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<script type="text/javascript" src="js/vue.js"></script>
<title>数据双向绑定、列表、简单事件的处理</title>
</head> <body>
<h4>#Hello World!</h4>
<div id="dr01">
<p>{{vue_dr01}}</p>
</div>
<hr />
<h4>#数据双向绑定</h4>
<div id="dr02">
<p>{{ytCode}}</p>
<input type="text" v-model="ytCode" />
</div>
<hr />
<h4>#渲染列表</h4>
<div id="dr03">
<ul>
<li v-for="book in books">
{{"name: "+book.name+"; price: "+book.price+"."}}
</li>
</ul>
</div>
<hr />
<h4>#处理用户输入</h4>
<div id="dr04">
<p>{{dr04_msg}}</p>
<button v-on:click="reverseMsg">reverseMsg</button>
</div>
</body>
<script>
var dr01 = new Vue({
el: "#dr01",
data: {
vue_dr01: "hello vue.js!"
}
});
var dr02 = new Vue({
el: "#dr02",
data: {
ytCode: 500331584514
}
});
var dr03 = new Vue({
el: "#dr03",
data: {
books: [{
name: "book01",
price: "price01"
}, {
name: "book02",
price: "price02"
}, {
name: "book03",
price: "price03"
}]
}
});
var dr04 = new Vue({
el: "#dr04",
data: {
dr04_msg: "this is dr04 message!"
},
methods: {
reverseMsg: function() {
this.dr04_msg = this.dr04_msg.split("").reverse().join("");
}
}
});</script> </html>

结果展示:

      

Vue.js-----轻量高效的MVVM框架(二、Vue.js的简单入门)的更多相关文章

  1. Vue.js-----轻量高效的MVVM框架(一、初识Vue.js)

    1.什么是Vue.js? 众所周知,最近几年前端发展非常的迅猛,除各种框架如:backbone.angular.reactjs外,还有模块化开发思想的实现库:sea.js .require.js .w ...

  2. Vue.js-----轻量高效的MVVM框架(九、组件利用Props传递数据)

    #使用props传递数据 html:传递普通的字符串 <h3>#使用props传递数据</h3> <div id="dr01"> <div ...

  3. Vue.js-----轻量高效的MVVM框架(十二、组件动态切换)

    在写html的过程中,我们经常会遇到要写tabs的切换,类似于这样: 在vue中,我们也有自己的组件和属性来实现这样的效果,这个东西我们叫做动态组件. html: <h3>动态组件< ...

  4. Vue.js-----轻量高效的MVVM框架(十、父子组件通信)

    #1.父链 html: <h3>#父链</h3> <div> <div>子组件可以用 this.$parent 访问它的父组件.根实例的后代可以用 th ...

  5. Vue.js-----轻量高效的MVVM框架(八、使用组件)

    什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有 ...

  6. Vue.js-----轻量高效的MVVM框架(七、表单控件绑定)

    话不多说,先上完整代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  7. Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)

    #单个slot html: <h3>#单个slot</h3> <!-- 定义child01模板 --> <template id="child01& ...

  8. Vue.js-----轻量高效的MVVM框架(六、Class与Style绑定)

    这个相对来说简单,看一遍代码就懂. 一.完整片段: <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  9. Vue.js-----轻量高效的MVVM框架(五、计算属性)

    #基础例子 <div id="dr01"> <h4>#基础例子</h4> <div> num01={{num01}}, num02= ...

随机推荐

  1. hive存储处理器(StorageHandlers)以及hive与hbase整合

    此篇文章基于hive官方英文文档翻译,有些不好理解的地方加入了我个人的理解,官方的英文地址为: 1.https://cwiki.apache.org/confluence/display/Hive/S ...

  2. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...

  3. springMVC:modelandview,model,controller,参数传递

    转载:http://blog.csdn.net/wm5920/article/details/8173480 1.web.xml 配置: copy   <> ></> & ...

  4. [译]Javascript中的mutators

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  5. 【ionic App问题总结系列】ionic 如何更新app版本

    ionic 如何进行自动更新 ionic App更新有两种方式:第一种是普通的从远程下载apk,安装并覆盖旧版本.另外一种就是采用替换www文件夹的内容,实现应用内更新,而无需下载安装apk. 这篇文 ...

  6. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  7. poj2417(Baby-Step Giant-Step)

    题目链接:http://poj.org/problem?id=2417 题意:求满足给出 P, N, B, 求满足条件 BL == N (mod P) 的最小 L, 若不存在则输出 no soluti ...

  8. loj #547. 「LibreOJ β Round #7」匹配字符串

    #547. 「LibreOJ β Round #7」匹配字符串   题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 ...

  9. C#中抽象类与接口

    1抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明 ...

  10. U19464 山村游历(Wander) LCT维护子树大小

    \(\color{#0066ff}{ 题目描述 }\) 在一个偏远的小镇上,有一些落后的山村.山村之间通过一些道路来连接.当然有的山村可能不连通. 一年当中会发生很多大事,比如说有人提议要在山村\(i ...