理解Vue
Vue.js是JavaScript MVVM(Model-View-ViewModel)库,十分简洁,Vue核心只关注视图层,相对AngularJS提供更加简洁、易于理解的API。Vue尽可能通过简单的API实现响应的数据绑定和组合的视图组件。
Vue和MVVM模式
MVVM模式即Model-View-ViewModel。
Vue是以数据为驱动的,Vue自身将DOM和数据进行绑定,一旦创建绑定,DOM和数据将保持同步,每当数据发生变化,DOM会跟着变化。
ViewModel是Vue的核心,它是Vue的一个实例。Vue实例时作用域某个HTML元素上的,这个HTML元素可以是body,也可以是某个id所指代的元素。
DOM Listeners和Data Bindings是实现双向绑定的关键。DOM Listeners监听页面所有View层DOM元素的变化,当发生变化,Model层的数据随之变化;Data Bindings监听Model层的数据,当数据发生变化,View层的DOM元素随之变化。
Vue.js特点
简洁:页面由HTML模板+Json数据+Vue实例组成
数据驱动:自动计算属性和追踪依赖的模板表达式
组件化:用可复用、解耦的组件来构造页面
轻量:代码量小,不依赖其他库
快速:精确有效批量DOM更新
模板友好:可通过npm,bower等多种方式安装,很容易融入
Vue.js入门小例子
声明式渲染
本例子由HTML模板(View)+Json数据(Model)+Vue实例(ViewModel)组成。
创建Vue的实例,需传入一个选项对象,如:数据、挂载元素、方法、模生命周期钩子等。本例子中,选项对象的el属性为#app,表示Vue实例挂载在<div id="app">...</div>元素上,data属性为exampleData,表示Model为exampleData。View中{{message}}是Vue的一种数据绑定语法,在运行时,{{message}}会被数据对象的message属性替换。
双向绑定
在Vue中使用v-model在表单元素上实现双向绑定。
Vue指令
Vue指令以v-开头,可将指令视作特殊的HTML属性(attribute),用于扩展html标签功能。
v-for
v-show
v-if
v-bind
v-on
Vue组件
组件可以扩展HTML元素,封装可重用的代码。
动态组件
多个组件可以使用同一个挂载点,然后动态的在他们之间切换。
嵌套组件
组件本身也可以包含组件
=========================================================
// 定义组件
var MyComponent = {
template: '<div>这是自定义组件</div>'
}
// 注册全局组件
Vue.component('aaa', MyComponent)
// 创建根实例
new Vue({
el: '#box'
})
//使用组件
<div id="box">
<aaa></aaa>
</div>
自定义元素的作用只是作为一个挂载点
=============================================================
// 定义组件
var MyComponent = {
template: '<div>A custom component!</div>'
}
// 创建根实例
new Vue({
el: '#example'
components:{ //注册局部组件
"aaa":MyComponent
}
})
//使用组件
<div id="example">
<aaa></aaa>
</div>
最新文章
- How to reset password for unknow root
- NC nc5.x报表设置合计行是否显示
- Debian7安装GCC4.8
- MYSQL 免安装版(windows 7/64)
- linux中使用top获取进程的资源占用信息
- angular 自定义指令
- Python3基础 for循环 遍历并输出一个字符串的列表
- centreon 降低rrd磁盘读写
- webSphere提示SSL证书过期,解决方法
- HTML5标准终于来了,看什么书学习最好??????
- [css]inline-block
- 安装Wamp后 Apache无法启动的解决方法
- Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()->;user
- RabbitMQ基础入门
- Spark UI界面原理
- 开发神器之PHPstorm配置及使用
- spring cloud config服务器
- OLTP/OLAP
- template-web.js 引用变量、函数
- 新的起点 Entry KINGSOFT
热门文章
- jquery文档内容的获取和设置
- Spring中配置Dbutils
- lightoj 1125【背包&#183;从n个选m个】
- 51nod 1297
- HDU2489【状压枚举】
- thinkphp5.0 页面缓存
- bzoj 4032: [HEOI2015]最短不公共子串【dp+SAM】
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 获取Session对象
- C 语言实例 - 连接字符串
- C. Chessboard( Educational Codeforces Round 41 (Rated for Div. 2))