Vue.js-----轻量高效的MVVM框架(二、Vue.js的简单入门)
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的简单入门)的更多相关文章
- Vue.js-----轻量高效的MVVM框架(一、初识Vue.js)
1.什么是Vue.js? 众所周知,最近几年前端发展非常的迅猛,除各种框架如:backbone.angular.reactjs外,还有模块化开发思想的实现库:sea.js .require.js .w ...
- Vue.js-----轻量高效的MVVM框架(九、组件利用Props传递数据)
#使用props传递数据 html:传递普通的字符串 <h3>#使用props传递数据</h3> <div id="dr01"> <div ...
- Vue.js-----轻量高效的MVVM框架(十二、组件动态切换)
在写html的过程中,我们经常会遇到要写tabs的切换,类似于这样: 在vue中,我们也有自己的组件和属性来实现这样的效果,这个东西我们叫做动态组件. html: <h3>动态组件< ...
- Vue.js-----轻量高效的MVVM框架(十、父子组件通信)
#1.父链 html: <h3>#父链</h3> <div> <div>子组件可以用 this.$parent 访问它的父组件.根实例的后代可以用 th ...
- Vue.js-----轻量高效的MVVM框架(八、使用组件)
什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有 ...
- Vue.js-----轻量高效的MVVM框架(七、表单控件绑定)
话不多说,先上完整代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)
#单个slot html: <h3>#单个slot</h3> <!-- 定义child01模板 --> <template id="child01& ...
- Vue.js-----轻量高效的MVVM框架(六、Class与Style绑定)
这个相对来说简单,看一遍代码就懂. 一.完整片段: <!DOCTYPE html> <html> <head> <meta charset="UTF ...
- Vue.js-----轻量高效的MVVM框架(五、计算属性)
#基础例子 <div id="dr01"> <h4>#基础例子</h4> <div> num01={{num01}}, num02= ...
随机推荐
- 业务逻辑:五、完成认证用户的动态授权功能 六、完成Shiro整合Ehcache缓存权限数据
一. 完成认证用户的动态授权功能 提示:根据当前认证用户查询数据库,获取其对应的权限,为其授权 操作步骤: 在realm的授权方法中通过使用principals对象获取到当前登录用户 创建一个授权信息 ...
- git仓库迁移的解决方案
一.问题 在github中遇到感兴趣的项目,直接克隆下来,随着兴趣越来越浓,在本地做了些修改,后来干脆想fork到自己的github仓库,又要把本地的修改提交到fork后的自己的github仓库中.这 ...
- C++ string操作(转载)
1.string类的构造函数 string(const char * s); //用s字符串初始化 string(const string &s);//用string类的s初始化 string ...
- DROOLS相关资料
这个地址可以教你如何配置drools的workbench http://blog.csdn.net/u012373815/article/details/53526287 这篇文章教你如何搭建一个简单 ...
- w2008 R2 401 - 未授权: 由于凭据无效,访问被拒绝。
1.打开服务器的"IIS信息服务管理器"-->选择你发布的网站-->选择功能视图中的"身份验证"-->右键匿名身份验证,选择"编辑& ...
- CENTOS 7 升级安装 Python 3.5
写在前面的话 本文采取源码的方式安装 Python 3.5.2,如果是其它版本会有或多或少的差异,且写这篇的时候官网最新的是 Python 3.7,个人使用 3.5 就足够了,没必要更新到最新,否则出 ...
- UWP&WP8.1 基础控件——Grid
Grid是一个面板控件 Grid是UWP和WPF,WP8.1中最重要的一个控件,相当相当重要. 他是一个面板控件,是用来添加其他控件 但是呢 用法确实简单的很. 大概就这个样子. 你用工具箱拖, ...
- iOS开发时间处理工具
1.获取当前的时间 /** 获取当前的时间 */ +(NSString*)getCurrentTimes{ NSDateFormatter *formatter = [[NSDateFormatter ...
- [linux]阿里云主机的免密码登陆安全SSH配置与思考
公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...
- SpringBoot dubbo之class is not visible from class loader
使用了两个类加载器加载了同一个类,区分一个Class对象是否相等要看包名+类名,也要看是否是同一个类加载器 方案一,排查掉spring-boot-devtools模块的maven引入可以解决,这时候所 ...