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 ListenersData 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>

												

最新文章

  1. How to reset password for unknow root
  2. NC nc5.x报表设置合计行是否显示
  3. Debian7安装GCC4.8
  4. MYSQL 免安装版(windows 7/64)
  5. linux中使用top获取进程的资源占用信息
  6. angular 自定义指令
  7. Python3基础 for循环 遍历并输出一个字符串的列表
  8. centreon 降低rrd磁盘读写
  9. webSphere提示SSL证书过期,解决方法
  10. HTML5标准终于来了,看什么书学习最好??????
  11. [css]inline-block
  12. 安装Wamp后 Apache无法启动的解决方法
  13. Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()-&gt;user
  14. RabbitMQ基础入门
  15. Spark UI界面原理
  16. 开发神器之PHPstorm配置及使用
  17. spring cloud config服务器
  18. OLTP/OLAP
  19. template-web.js 引用变量、函数
  20. 新的起点 Entry KINGSOFT

热门文章

  1. jquery文档内容的获取和设置
  2. Spring中配置Dbutils
  3. lightoj 1125【背包&#183;从n个选m个】
  4. 51nod 1297
  5. HDU2489【状压枚举】
  6. thinkphp5.0 页面缓存
  7. bzoj 4032: [HEOI2015]最短不公共子串【dp+SAM】
  8. IT兄弟连 JavaWeb教程 Servlet会话跟踪 获取Session对象
  9. C 语言实例 - 连接字符串
  10. C. Chessboard( Educational Codeforces Round 41 (Rated for Div. 2))