前端最基礎的就是 HTML+CSS+Javascript
。掌握了這三門技術就算入門,但也僅僅是入門,如今前端開發的定義已經遠遠不止這些。前端小課堂(HTML/CSS/JS
),本着提高技術水平,打牢基礎知識的中心思想,咱們開課啦(每週四)。html
可使用 {{
}}
來顯示變量。這樣的話,若是內部修改 author
的話,頁面上也會實時更新。v-once
指令,能夠執行單次渲染,後續變化不在更新。delimiters: ['${', '}']
經過這個配置項,咱們能夠修改成習慣的分隔符。前端
<template> <span>Message: {{ author }}</span> </template> <script> export default { data(){ return { author: 'www.lilnong.top' } } } </script>
插值的寫法基本等價於 v-text
。
固然有些時候咱們有可能會須要渲染 HTML,好比說 表情、富文本等等,這個是咱們可使用 v-html
。
固然,不建議使用 v-html
,由於有可能會有 xss
的問題。vue
<template> <div> <span>Message: {{ author }}</span> <span v-text="author"></span> <span v-html="author"></span> </div> </template> <script> export default { data(){ return { author: 'www.lilnong.top,<span style="red>lilnong.top</span>' } } } </script>
綁定動態屬性須要使用 v-bind
(縮寫是:
)。下面這兩種寫法是等價的segmentfault
<span v-bind:id="author"></span> <span :id="author"></span>
若是是 disabled
這類的屬性,在值爲 false
時是不會渲染在DOM 上的。由於這種屬性在 HTML5 規範中,存在即爲 true。數組
style
屬性是特殊處理過的,你能夠 直接使用對象形式。微信
<template> <div> <span :style="authorStyle">Message: {{ author }}</span> </div> </template> <script> export default { data(){ return { author: 'www.lilnong.top,<span style="red>lilnong.top</span>', authorStyle: { color: '#0cc' } } } } </script>
class
屬性是特殊處理過的,你能夠 直接使用對象形式。xss
對象形式。以下,item.checked
爲真時,會增長 checked
這個 class
。item.checked && item.age >= 18
爲真時,會增長 isHigh
這個 class
。ide
{ checked: item.checked, isHigh: item.checked && item.age >= 18 }
數組形式。默認給全部都加上了 checkbox
這個 class
。性能
['checkbox',{ checked: item.checked, isHigh: item.checked && item.age >= 18 }]
事件是咱們開發中必不可少的東西。好比 click
、input
等等。
咱們在 Vue 中,綁定事件使用 v-on
(縮寫是 @
)來綁定事件。下面兩種寫法是等價的。優化
<button v-on:click="clickHandler">btn</button> <button @click="clickHandler">btn</button>
指令 (Directives) 帶有 v-
前綴,如剛纔咱們用到的 v-bind
、v-on
、v-text
、v-html
。
指令的值預期是單個 JavaScript 表達式 (v-for
是例外狀況)。
指令的職責是,當表達式的值改變時,將其產生的連帶影響,響應式地做用於 DOM。
<a v-bind:href="url">...</a> <a :href="url">...</a> <button v-on:click="clickHandler">btn</button> <button @click="clickHandler">btn</button> <span v-text="author"></span> <span v-html="author"></span>
textContent
,我我的感受仍是模板字符串好用innerHTML
,這裏須要注意 XSS 防禦喲。display
,來實現顯示隱藏。v-for 遍歷,這裏要注意使用 :key
。
<div v-for="(item, index) in items"></div> <div v-for="(val, key) in object"></div> <div v-for="(val, name, index) in object"></div>
v-on 用於綁定事件。組件上若是想觸發元素的原生事件能夠用 .native
。縮寫是 @
修飾符
.stop
- 調用 event.stopPropagation()
。.prevent
- 調用 event.preventDefault()
。.capture
- 添加事件偵聽器時使用 capture 模式。.self
- 只當事件是從偵聽器綁定的元素自己觸發時才觸發回調。.{keyCode | keyAlias}
- 只當事件是從特定鍵觸發時才觸發回調。.native
- 監聽組件根元素的原生事件。.once
- 只觸發一次回調。.left
- (2.2.0) 只當點擊鼠標左鍵時觸發。.right
- (2.2.0) 只當點擊鼠標右鍵時觸發。.middle
- (2.2.0) 只當點擊鼠標中鍵時觸發。.passive
- (2.3.0) 以 { passive: true }
模式添加偵聽器v-bind 設置屬性。縮寫是 :
修飾符:
.prop
- 做爲一個 DOM property 綁定而不是做爲 attribute 綁定。(差異在哪裏?).camel
- (2.1.0+) 將 kebab-case attribute 名轉換爲 camelCase。(從 2.1.0 開始支持).sync
(2.3.0+) 語法糖,會擴展成一個更新父組件綁定值的v-on
偵聽器。v-model 用於實現數據雙向綁定,實際上是個語法糖
default
,縮寫是 #
[v-cloak] { display: none }
一塊兒用時,這個指令能夠 隱藏未編譯的 Mustache 標籤直到實例準備完畢。從 2.6.0 開始,能夠用 方括號 (\[
和 \]
)括起來的 JavaScript 表達式做爲一個指令的參數:
<a v-bind:\[attributeName\]="url"\> ... </a\> <a v-on:\[eventName\]="doSomething"\> ... </a\>
修飾符 (modifier) 是以半角句號 .
指明的特殊後綴,用於指出一個指令應該以特殊方式綁定。
例如,.prevent
修飾符告訴 v-on
指令對於觸發的事件調用 event.preventDefault()