国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue.js基礎知識匯總

2019-11-20 10:12:06
字體:
來源:轉載
供稿:網友

介紹

vue.js 是用來構建web應用接口的一個庫

技術上,Vue.js 重點集中在MVVM模式的ViewModel層,它連接視圖和數據綁定模型通過兩種方式。實際的DOM操作和輸出格式被抽象的方式到指令(Directives)和過濾器(Filters)

在哲學領域內,盡量讓MVVM數據綁定API盡可能簡單。模塊化和可組合性也是重要的設計考慮。vue不是一個全面的框架,它被設計成簡單的和靈活的。你可以用它快速原型,或混合和匹配與其他庫定義前端堆棧。

Vue。js的API是參考了AngularJS、KnockoutJS Ractive.js Rivets.js。盡管有相似之處,我相信Vue.js提供一個有價值能夠讓你在現在的一些現有框架中舍取其價值

即使你已經熟悉其中的一些術語,建議您通過以下概念的概述,因為你的這些術語的概念可能在Vue.js的下文中有所不同

概念概述

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

粗略翻譯,有錯誤請指出

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普定县| 邛崃市| 二手房| 会泽县| 永德县| 丽江市| 浦北县| 林州市| 舒兰市| 叙永县| 彩票| 靖边县| 六安市| 工布江达县| 绥江县| 佳木斯市| 个旧市| 丹东市| 海伦市| 邮箱| 神池县| 深水埗区| 富平县| 临沂市| 碌曲县| 鄢陵县| 中宁县| 沛县| 郑州市| 汉源县| 鄂温| 平顺县| 五大连池市| 宜宾县| 峡江县| 松江区| 泽普县| 云霄县| 保山市| 阿克陶县| 三明市|