咱們從一個基本的輸入框開始:css
<input type="text" id="input">
若是用 JavaScript 讓輸入框顯示 你好,Vue
呢?實現以下:html
<script> var data = { message: "你好,Vue" }; document.querySelector('#input').value = data.message; </script>
代碼說明:vue
定義一個 data
對象;git
使用 js 提供的 querySelector
方法,來選擇 id
爲 input
的元素,並對 input
元素的 value
進行賦值。github
那麼,這個例子用 Vue 來實現是怎樣的呢?瀏覽器
// html <input type="text" id="input" v-model="message"> // js var data = { message: "你好,Vue" }; var vm = new Vue({ el: '#input', data:data })
咱們來詳細說明下。函數
var vm = new Vue();
首先,調用構造函數 Vue
建立一個新的 Vue 實例,命名爲 vm
;工具
el: '#input',
Vue 的實例必須掛載到某個元素上,能夠經過 el
屬性來設置。在本例中,實例被掛在到了 input
元素上。學習
var data = { message: "你好,Vue" }; data:data
咱們定義另外一個 data
對象,而後將其傳給了 Vue 實例的 data
屬性,該屬性專門負責管理數據。這樣,Vue 會全權代理 data
對象。好比,經過 vm.message
就能夠訪問 data
對象的 message
屬性了。spa
<input type="text" id="input" v-model="message">
最後,咱們使用 Vue 提供的指令 v-model
,該指令一般用於對錶單控件的雙向綁定。什麼是雙向綁定?接下來會介紹。
在進一步學習 Vue 以前,首先來安裝相應的調試工具:官方地址。
安裝以後,要容許其訪問文件網址:
這裏與 Google Chrome 爲例,安裝好以後,右上角就會多出一個 Vue 的標記。若是你打開的是一個 Vue 頁面,那麼該圖標就會點亮。
先來看看第一節例子,只作了稍微改動:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="https://cdn.bootcss.com/vue/2.2.6/vue.js"></script> </head> <body> <div id="root"> <input type="text" id="input" v-model="message"> <p>{{ message }}</p> </div> <script> let data = { message: "你好,Vue" }; var vm = new Vue({ el: '#root', // 綁定 id 爲 root 的元素 data:data }) </script> </body> </html>
使用插值符號 {{ }}
爲元素賦值,在這裏,也可使用 v-text
指定元素的 contentText
:
<p v-text="message"></p>
在瀏覽器中打開該例,打開 Chrome 的控制檯,進行以下操做:點擊 Root
元素,令其與 $vm0
綁定。點哪一個節點,那個節點就會綁定 $vm0
。
如今,咱們可使用 $vm0
在控制檯中訪問實例,咱們立刻來直觀感覺下什麼是響應式更新:
能夠看出:
輸入框的值改變後,控制檯中訪問 message
發現跟着變化;
控制檯中操做 message
的值,輸入框也實時跟着變化;
這就是響應式更新啦。須要注意的是 v-model
只能用於表單控件,不能用於 div
、p
等其餘元素。
附錄: