VusJs 是個便利的框架,它的便利在於幫我們把一些較複雜的事情都先做好了,據說 Vue 的入門較簡單,單是也是會讓我們將 JS 武功廢掉的框架,還記得有位朋友說,他寫了一陣子 Vue 之後,幾乎 JS 的武功都廢了,聽起來蠻聳動的。所以一定要記住,時不常回來寫原生還是必要的。
這裡記錄一些學習上的筆記和用法,以便將來腦殘可回來補腦。
我們先以 CDN 的方式將 Vue.js 引入就可以用了,記得也要先創建一個 Vue 的實例來用,裡面會有所有控制與資料的部分。
接著,在 HTML 裡將要控制的部分以一個<div>
包住,並給予 ID <div id="app">
這個 #app
就可以以標籤綁定資料的方式,和 Vue 的實例裡的資料做溝通。
資料綁定
資料綁定最常用的是雙大括號,裡面的變數就是聯繫實例裡面Data
物件裡的屬性資料。
我們如何使用它:
可以以 HTML 的形式來綁定如<p v-html="msg"></p>
(顯示 html 格式)
用 text 的形式來綁定如<p v-text="msg"></p>
(顯示純文字)
雙花括號不可直接用在 html 的屬性上,在需要用的情況下,可以用v-bind
的方式如
1 | <button v-bind:disabled="isDisabled">Button</button> |
直接使用 JS 表達式,在雙大括號裡可以直接些三元運算子,甚至是直接用 JS 的內建函式。
1 | {{ isName ? Yes : No; }} or {{ name .split('') .reverse() .join(''); }} |
必須寫在 Html 的屬性裡:<div v-bind:id="'list-' + id"></div>
我們想要在一個 input 裡即使顯示我們輸入的內容,在實例的data
先準備好初始化的資料,在input
裡,用指令v-model
(資料)去綁住,然後再到要顯示的 html 裡,以雙花括號包住在data
裡的某一屬性,就可以達到即使顯示的效果。
1 | <p>my name is {{ name }}</p> |
在監聽事件的部分,可使用v-on:click="方法名"
去觸發想要做的事情或資料>
<button @click=”showHi(say)”>click
1 | <div id="app"> |
在 Vue 的實例裡會有什麼?
在 vm 的實例裡,我們需要準備我們想對組件操控的方法和顯示的資料,當然不只這些,實例有點像是控制中心,在這裏控制 V:viem 和 M:model ,我們也成實例為 VM: viewModel。
1 | const vm = new Vue({ |
data: { }
data 物件的屬性大多為初始化的屬性字面值。
methods: { }
methods 裡面包含多個方法的物件,來提供給頁面中的v-on
事件指令來綁定 callback 回調函式
callback 函式預設有 event 參數, 但也可以指定自己的參數
所有的方法由 vue 物件來呼叫, 調用 data 中的屬性直接使用 this.xxx
今天先寫到這裡,一定要堅持下去喔!
題外話,近日武漢肺肺炎的關係,開始關注一些中國的現狀,和中國朋友閒聊時,才知道真的是水深火熱的環境。
另如,我不解為何中國朋友都不太敢對自己的國家有所批評,台灣說的「批評求進步」簡直是讓自己陷入危險。上次看法國報導,記者試著採訪中國遊客,關於看到法輪功的感想,一團幾十個,沒有一個願意開口。後來朋友跟我說,如果從中國第一次出國,就要參加一種叫行前教育的活動,需要政府部門批准他們出去,那時工作人員會告誡他們不要把外面的信息帶回來。這可能也是很多海外華人不像多評論政治的原因。他去台灣的第一次是這麼要求,他的父母也是。
想想,生活在台灣真的還是件蠻幸福的事。