『壹』 vue.js 渲染是什麼意思
首先要理解的是vue等目前框架和之前jQuery之類傳統的不同的地方。
他靠的是數據驅動,對DOM是不進行操作的,不使用DOM的增刪改查,通過數據的變化 ,來渲染的當前的結構。
『貳』 Vue.JS入門篇--列表渲染
查看一下效果,應該很容易得到結果
有時我們可能需要重復一個包含多個節點的塊,這時可以用 <template> 標簽包裹這個塊。這里的 <template> 標簽只起到語義上的包裹作用,其本身不會被渲染出來。例如:
簡單值 (primitive value) 即字元串、數字、boolean 等並非對象的值。對於包含簡單值的數組,你可用 $value 直接訪問值:
有時我們可能想要更明確地訪問當前作用域的變數而不是隱式地回退到父作用域。你可以通過提供一個參數給 v-repeat 指令並用它作為將被迭代項的別名:
Vue.js 內部對被觀察數組的變異方法 (mutating methods,包括 push(), pop(), shift(), unshift(), splice(), sort() 和 reverse()) 進行了攔截,因此調用這些方法也將自動觸發視圖更新。
下面是一個演示的例子,點擊按鈕的時候數據項會被移除
Vue.js 給被觀察數組添加了兩個便捷方法:$set() 和 $remove() 。
你應該避免直接通過索引來設置數據綁定數組中的元素,比如 demo.items[0] = {},因為這些改動是無法被 Vue.js 偵測到的。你應該使用擴展的 $set() 方法:
$remove() 只是 splice()方法的語法糖。它將移除給定索引處的元素。當參數不是數值時,$remove() 將在數組中搜索該值並刪除第一個發現的對應元素。
當你使用非變異方法,比如filter(), concat() 或 slice(),返回的數組將是一個不同的實例。在此情況下,你可以用新數組替換舊的數組:
你可能會認為這將導致整個列表的 DOM 被銷毀並重新渲染。但別擔心,Vue.js 能夠識別一個數組元素是否已有關聯的 Vue 實例, 並盡可能地進行有效復用。
在某些情況下,你可能需要以全新的對象(比如 API 調用所返回的對象)去替換數組。如果你的每一個數據對象都有一個唯一的 id 屬性,那麼你可以使用 track-by 特性參數給 Vue.js 一個提示,這樣它就可以復用已有的具有相同 id 的 Vue 實例和 DOM 節點。
例如:你的數據是這個樣子的
那麼你可以像這樣給出提示:
在替換 items 數組時,Vue.js 如果碰到一個有 _uid: ྔf869d' 的新對象,它就會知道可以直接復用有同樣 _uid 的已有實例。 在使用全新數據重新渲染大型 v-repeat 列表時,合理使用 track-by 能極大地提升性能。
你也可以使用 v-repeat 遍歷一個對象的所有屬性。每個重復的實例會有一個特殊的屬性 $key。對於簡單值,你也可以象訪問數組中的簡單值那樣使用 $value 屬性。
在 ECMAScript 5 中,對於給對象添加一個新屬性,或是從對象中刪除一個屬性時,沒有機制可以檢測到這兩種情況。針對這個問題,Vue.js 中的被觀察對象會被添加三個擴展方法: $add(key, value), $set(key, value) 和 $delete(key)。這些方法可以被用於在添加 / 刪除觀察對象的屬性時觸發對應的視圖更新。方法 $add 和 $set 的不同之處在於當指定的鍵已經在對象中存在時 $add 將提前返回,所以調用 obj.$add(key) 並不會以 undefined 覆蓋已有的值。
v-repeat 也可以接受一個整數。在這種情況下,它將重復顯示一個模板多次。 下面的例子將迭代3次。
有時候我們只需要顯示一個數組的過濾或排序過的版本,而不需要實際改變或重置原始數據。Vue 提供了兩個內置的過濾器來簡化此類需求: filterBy 和 orderBy。
『叄』 vue中我拿到了一個js格式的data數據,我應該怎麼把數據渲染到頁面中呢
看你data是什麼樣放的數據。
1、如果是
export default {
route: {
abc:'abc'
}
用import xx from '../xx.js'
2、如果是json的數據,比如想模擬伺服器返回的數據,用get post直接請求文件地址。得到json數據。若不是,需要轉換或者其他處理。