英文:http://vuejs.org/guide/index.htmlhtml
vue.js 是用来构建web应用接口的一个库前端
技术上,Vue.js 重点集中在MVVM模式的ViewModel层,它链接视图和数据绑定模型经过两种方式。实际的DOM操做和输出格式被抽象的方式到指令(Directives)和过滤器(Filters)vue
在哲学领域内,尽可能让MVVM数据绑定API尽量简单。模块化和可组合性也是重要的设计考虑。vue不是一个全面的框架,它被设计成简单的和灵活的。你能够用它快速原型,或混合和匹配与其余库定义前端堆栈。web
Vue。js的API是参考了AngularJS、KnockoutJS Ractive.js Rivets.js。尽管有类似之处,我相信Vue.js提供一个有价值可以让你在如今的一些现有框架中舍取其价值windows
即便你已经熟悉其中的一些术语,建议您经过如下概念的概述,由于你的这些术语的概念可能在Vue.js的下文中有所不一样api
一个对象,同步模型和视图. 在Vue.js中,ViewModels是实例化的Vue的构造器或者是它的子类数组
var vm = new Vue({ /* options */ })
这是主要的对象,你会与做为开发人员在使用Vue.js交互。更多细节请参阅Class: Vue.浏览器
用户看到的实际HTML / DOM安全
vm.$el // The View
当使用Vue.js时候,除了本身自定义的指令你几乎不会触碰到DOM的操做,当数据更新后视图的更新将会自动的触发,视图的更新能够很精确的到每个testNode节点,他们也批处理和异步执行从而提供更好的性能。框架
这是一个略微修改的Javascript对象
vm.$data // The Model
在Vue.js中,模型只是简单的Javascript对象,数据对象,你可以操控他们的属性和视图模型,观察他们的从而能获取通知后更改。Vue.js在data对象胡总用ES5的 getter/setter 把属性转化了,它容许直接操做而不须要脏检查。
data对象在适当的时候会产生突变,因此修改它与经过引用修改vm.$data是同样的效果。这也方便了多个ViewModel实例观察同一块数据。
技术细节请看Instantiation Options: data.
私有的HTML属性是告诉Vue.js作一些关于DOM的处理
<div v-text="message"></div>
这里的div元素有一个v-text的指令,值是message.意思是告诉Vue.js 保持这个div节点的内容与viewMode中的message属性同步
指令能够封装任意DOM操做。例如v-attr 操做一个属性元素,v-repeat克隆基于数组的一个元素,v-on附加事件监听,咱们稍后讨论.
您还可使用mustache-style绑定,在文本和属性。他们翻译成v-text v-attr指令。例如:
<div id="person-{{id}}">Hello {{name}}!</div>
虽然方便,但有几件事你须要注意的:
若是设置一个image的src属性的时候,会发送一个HTTP请求,因此当模板是第一次解析出现404,此时用v-attr比较好
当解析HTML的时候,Internet Explorer将会删除无效的内部style属性,因此咱们想要支持IE绑定内联的CSS 我就老是用v-style
在v-html内部,非转义的HTML你能用三个大括号{{{像这样}}}处理,可是这样会有潜在的XSS攻击,能打开windows,因此建议是绝对安全的数据全的时候才这样作,或者经过自定义管道过滤器清理不可信的HTML
在更新视图以前能够用函数来处理这个原始的数据。他们正在用一个“管道”指令或绑定:
<div>{{message | capitalize}}</div>
如今在div的文本内容要更新以前,这个message的值将会经过capitalize函数处理。详细请看Filters in Depth.
在Vue.js,一个组件是一个简单的视图模型构造函数,经过Vue.component(ID, constructor)注册。经过一个关联的ID,能够嵌套另外的视图模型的模板的v-component指令。这种简单的机制使声明视图模型的重用和组合方式相似于Web组件,而不须要最新的浏览器或重型polyfills。经过将应用程序分解成更小的组件,其结果是一个高度解耦和可维护的代码库。更多细节,请参阅Composing ViewModels.
<div id="demo"> <h1>{{title | uppercase}}</h1> <ul> <li v-repeat="todos" v-on="click: done = !done" class="{{done ? 'done' : ''}}"> {{content}} </li> </ul> </div>
var demo = new Vue({ el: '#demo', data: { title: 'todos', todos: [ { done: true, content: 'Learn JavaScript' }, { done: false, content: 'Learn vue.js' } ] } })
粗略翻译,有错误请指出