iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
5
Modern Web

初探Vue.js 30天系列 第 2

[Day 2] 讓我看看! Vue

  • 分享至 

  • xImage
  •  

什麼是Vue?

Vue是JavaScript前端"漸進式"框架,之所以稱為漸進式,是因為你不須一竿子把所有的東西都用上。
在原本使用Jquery或是原生的JS的專案中,可以只引入Vue的核心(Core),就可以開始利用Vue.js方便的資料綁定及表單驗證功能,一步一步邁進Vue的懷抱(?)/images/emoticon/emoticon01.gif

Vue可以定義想要作用的範圍,因此可以達到在過渡期,與Jquery混用的情況

https://ithelp.ithome.com.tw/upload/images/20200915/20108252c7hnnhUQoY.png

Vue是用MVVM架構運作整個流程,操作View時透過ViewModel向Model請求資料,並且回應正確的資料來源,可做到即時更新資料,也可用元件內部的方法達到頁面與各個元件做互動。

什麼是MVVM?

MVVM是Model-View-ViewModel的簡稱,View和Model之間並不會直接溝通,而是通過ViewModel,而Model和ViewModel之間的溝通是雙向的。

  • Model:管理所有資料
  • View:顯示UI與接收動作
  • ViewModel:接收View的指令對Model請求資料。

https://ithelp.ithome.com.tw/upload/images/20200915/20108252vjplOMsgFz.png

那麼Vue與jQuery差異?

https://ithelp.ithome.com.tw/upload/images/20200915/20108252xosdhR23c7.jpg

  • jQuery 用DOM取得資料或屬性,進行賦值、取值、事件處理等,頁面呈現及數據會受DOM操作影響。
  • Vue 雙向綁定使DOM跟數據綁定後,不再需要使用相應的DOM對象,讓頁面呈現及數據是分離的,也就是MVVM。

以下為相同功能,Jquery的作法跟Vue的作法差異

jQuery:設定DOM對象,text的文字

<div id="app">
	<p id="text"></p>
</div>

<script>
	$("#text").text('Jquery Test!');
</script>

Vue:建立Instance,定義作用域在id="app"內的區塊,並在Instance內設定message資料,讓message呈現於html上

<div>
	<p id="text">{{ message }}</p>
</div>

<script>
let app = new Vue({
  el: '#app',
  data: {
    message: 'Vue Test!'
  }
})
</script>

Codepen

Resource
Vue.js,何謂漸進式框架?


上一篇
[Day 1] 菜鳥探頭前 - 說明會
下一篇
[Day 3] Vue Instance & Lifecycle 建立了什麼出來?
系列文
初探Vue.js 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言