1. 程式人生 > >Vue入門--基礎部分

Vue入門--基礎部分

同時 初識 one 數據綁定 其中 reverse 處理 頁面 入學

一、初識Vue

  1. 使用雙大括號{{message}}將數據渲染進DOM中。

可以使用app.message對渲染後的數據進行修改。

  1. Vue常用的指令:

1)v-bind 用來綁定常用屬性

主要用法:直接在html標簽上添加v-bind:屬性名=”vue實例中的message”

2)v-if 條件

主要用法:直接在html標簽上添加v-if=”vue實例中的某個屬性名”,這個屬性對應的屬性值應該是布爾值

3)v-for 可以綁定數組的數據來渲染一個列表

主要用法:實例的data對象中添加一個對象,其中的一項的屬性名如todos,它的值是個數據數組,在html中要循環的元素上添加v-for=”任意名如todo in todos”,然後通過雙花括號取到todos中每一條數據的某個字段值{{todo.text}}

通過app4.todos.push({text: ‘新數據’})新增一項數據

4)v-on 綁定事件,並調用實例中的方法

主要用法:在vue實例中添加methods對象,裏面定義方法如reverseMessage,在html的dom元素直接添加v-on:事件名=”該方法名”

註意:方法中的this指代vue實例

5)v-model 主要用於實現表單輸入和應用狀態之間的雙向數據綁定

主要用法:常用於input元素,添加v-model=”實例中的數據如message”,同時在另個元素中使用雙大括號加載該數據{{message}},從而實現了input框的value值和另個元素數據的同步更新

  1. 組件化 類似於自定義元素

簡言之,如果html頁面中某個元素需要重復多遍,就可以把它封裝成一個組件加載。

如下例:

Vue實例的數據中有重復多個的數據json,若想在html頁面實現它,就需要考慮下將每一條數據用組件來定義。

1)定義組件的方法:

Vue.component(‘組件元素名’, {

props: [‘todo’], // 選寫。類似於自定義一個屬性,屬性名叫todo

template: ‘標簽元素’ // 必寫。決定將要采用哪個標簽,待第2)完成後將循環後的每一個item數據中的文本加載進來,形成template: ‘<li>{{ todo.text }}</li>‘

})

2)怎麽在html中使用:

直接將上面的組件元素名當作標簽使用,並使用v-for指令循環,v-bind指令綁定組件中定義的那個屬性todo,它的值為v-for中的每一項如item,v-bind還可以綁定其他屬性,如id.

二、Vue實例

  1. 構造器

每個Vue.js應用都是通過構造函數Vue創建一個Vue的根實例啟動的,如:

var vm = new Vue({ //選項 });

這些選項包括:https://cn.vuejs.org/v2/api/#選項-數據

1) el

2) data

3) methods

4) filters 過濾器

5) computed 計算屬性

可以對vue實例進行擴展:

  1. 屬性與方法

1) 每個Vue實例都會代理其data對象裏所有的屬性,如下例,換句話說vm其實就相當於實例中的data,所以能按照json方式取到data中的key和value

2) 實例屬性和方法 https://cn.vuejs.org/v2/api/#實例屬性

都有前綴$,如

  1. 生命周期

1) created 在實例被創建之後被調用

2) mounted updated

3) destroyed

三、模板語法

  1. 使用javascript表達式

而且在這種表達式下訪問不到用戶自定義的變量,只能訪問到全局變量的一個白名單,如Math和Date等。

註意:太復雜的表達式會使html模板冗余,所以一般寫成計算屬性(見第四部分)

  1. 修飾符 . 指出某些指令應該以特殊方式綁定 ps: demo中的用法好像不對!!!

1).prevent 相當於event.preventDefault()

  1. 過濾器

1)只能在mustache雙花括號和v-bind表達式中使用,右管道符“|”指示,用於文本轉換,其中message相當於capitalize這個過濾方法的參數。

2) 過濾器可以串聯

3) 過濾器可以傳多個參數

  1. 縮寫

常用的兩個:v-bind:href=”url” => :href=”url”

v-on:click=”doSth” => @click=”doSth”

四、計算屬性

  1. 通過選項computed添加對象,可以有多個值即計算屬性,但在一般需求下只添加一個就好了。

參見下例:

我們可以通過vm.reversedMessage獲取到計算後的message,當vm.message發生變化時,vm.reversedMessage也會隨之改變。

  1. 與methods對比

計算屬性基於自己的依賴進行緩存,只要message沒發生變化,多次訪問該計算屬性就會立即返回之前的計算結果,而不必再次執行函數;

而methods調用總會執行該函數。

  1. 與watch對比

都是用來處理某些數據隨其他數據的變動而變動的,但盡量不要濫用watch,如果代碼是命令式和重復的,先考慮下計算屬性computed,可使代碼更簡潔。

註意:需要深入學習下watch選項。

  1. 計算setter

計算屬性默認只有 getter ,不過在需要時你也可以提供一個 setter :

註:setter中的參數newValue即後面設置的vm.fullName—‘Jhon Doe’.

而且沒有上面的get方法,下面設置的fullName根本就不生效。

Vue入門--基礎部分