Vue 入门指南

英文:http://vuejs.org/guide/index.htmlhtml

介绍

vue.js 是用来构建web应用接口的一个库前端

技术上,Vue.js 重点集中在MVVM模式的ViewModel层,它链接视图和数据绑定模型经过两种方式。实际的DOM操做和输出格式被抽象的方式到指令(Directives)和过滤器(Filtersvue

在哲学领域内,尽可能让MVVM数据绑定API尽量简单。模块化和可组合性也是重要的设计考虑。vue不是一个全面的框架,它被设计成简单的和灵活的。你能够用它快速原型,或混合和匹配与其余库定义前端堆栈。web

Vue。js的API是参考了AngularJS、KnockoutJS Ractive.js Rivets.js。尽管有类似之处,我相信Vue.js提供一个有价值可以让你在如今的一些现有框架中舍取其价值windows

即便你已经熟悉其中的一些术语,建议您经过如下概念的概述,由于你的这些术语的概念可能在Vue.js的下文中有所不一样api

 

概念概述

ViewModel

一个对象,同步模型和视图. 在Vue.js中,ViewModels是实例化的Vue的构造器或者是它的子类数组

var vm = new Vue({ /* options */ })

这是主要的对象,你会与做为开发人员在使用Vue.js交互。更多细节请参阅Class: Vue.浏览器

 

View

用户看到的实际HTML / DOM安全

vm.$el // The View

当使用Vue.js时候,除了本身自定义的指令你几乎不会触碰到DOM的操做,当数据更新后视图的更新将会自动的触发,视图的更新能够很精确的到每个testNode节点,他们也批处理和异步执行从而提供更好的性能。框架

 

Model

这是一个略微修改的Javascript对象

vm.$data // The Model

在Vue.js中,模型只是简单的Javascript对象,数据对象,你可以操控他们的属性和视图模型,观察他们的从而能获取通知后更改。Vue.js在data对象胡总用ES5的 getter/setter 把属性转化了,它容许直接操做而不须要脏检查。

data对象在适当的时候会产生突变,因此修改它与经过引用修改vm.$data是同样的效果。这也方便了多个ViewModel实例观察同一块数据。

技术细节请看Instantiation Options: data.

 

Directives

私有的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 Bindings

您还可使用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

 

Filters

在更新视图以前能够用函数来处理这个原始的数据。他们正在用一个“管道”指令或绑定:

<div>{{message | capitalize}}</div>

如今在div的文本内容要更新以前,这个message的值将会经过capitalize函数处理。详细请看Filters in Depth.

 

Components

在Vue.js,一个组件是一个简单的视图模型构造函数,经过Vue.component(ID, constructor)注册。经过一个关联的ID,能够嵌套另外的视图模型的模板的v-component指令。这种简单的机制使声明视图模型的重用和组合方式相似于Web组件,而不须要最新的浏览器或重型polyfills。经过将应用程序分解成更小的组件,其结果是一个高度解耦和可维护的代码库。更多细节,请参阅Composing ViewModels.

 

A Quick Example

<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'
            }
        ]
    }
})

 

粗略翻译,有错误请指出

相关文章
相关标签/搜索