Vue MVVM模式和第乙個Vue程式

2022-06-05 09:30:12 字數 3988 閱讀 5444

mvvm 源自於經典的 mvc(model-view-controller)模式。mvvm 的核心是 viewmodel 層,負責轉換 model 中的資料物件來讓資料變得更容易管理和使用,其作用如下:

mvvm 已經相當成熟了,主要運用但不僅僅在網路應用程式開發中。當下流行的 mvvm 框架有 vue.js,angularjs 等。

mvvm 模式和 mvc 模式一樣,主要目的是分離檢視(view)和模型(model),有幾大好處

view 是檢視層,也就是使用者介面。前端主要由 html和 css來構建,為了更方便地展現 viewmodel或者 model層的資料,已經產生了各種各樣的前後端模板語言,比如 freemarker、thymeleaf 等等,各大 mvvm 框架如 vue.js,angularjs,ejs 等也都有自己用來構建使用者介面的內建模板語言。

3.2)model

model 是指資料模型,泛指後端進行的各種業務邏輯處理和資料操控,主要圍繞資料庫系統展開。這裡的難點主要在於需要和前端約定統一的 介面規則

3.3)viewmodel

viewmodel 是由前端開發人員組織生成和維護的檢視資料層。在這一層,前端開發者對從後端獲取的 model 資料進行轉換處理,做二次封裝,以生成符合 view 層使用預期的檢視資料模型。

需要注意的是 viewmodel 所封裝出來的資料模型包括檢視的狀態和行為兩部分,而 model 層的資料模型是只包含狀態的

檢視狀態和行為都封裝在了 viewmodel 裡。這樣的封裝使得 viewmodel 可以完整地去描述 view 層`。由於實現了雙向繫結,viewmodel 的內容會實時展現在 view 層,這是激動人心的,因為前端開發者再也不必低效又麻煩地通過操縱 dom 去更新檢視。

mvvm 框架已經把最髒最累的一塊做好了,我們開發者只需要處理和維護 viewmodel,更新資料檢視就會自動得到相應更新,真正實現 事件驅動程式設計。

view 層展現的不是 model層的資料,而是 viewmodel的資料,由 viewmodel負責與 model層互動,這就完全解耦了 view層和 model層,這個解耦是至關重要的,它是前後端分離方案實施的重要一環

vue (讀音 /vjuː/,類似於 view) 是一套用於構建使用者介面的漸進式框架,發布於 2014 年 2 月。與其它大型框架不同的是,vue 被設計為可以自底向上逐層應用。vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫(如:vue-router,vue-resource,vuex)或既有專案整合。

在 mvvm 架構中,是不允許 資料 和 檢視 直接通訊的,只能通過 viewmodel 來通訊,而 viewmodel 就是定義了乙個 observer 觀察者

至此,我們就明白了,vue.js 就是乙個 mvvm 的實現者,他的核心就是實現了 dom 監聽 與 資料繫結

【說明】idea 可以安裝 vue 的外掛程式!

注意:vue 不支援 ie8 及以下版本,因為 vue 使用了 ie8 無法模擬的 ecmascript 5 特性。但它支援所有相容 ecmascript 5 的瀏覽器。

- 開發版本

- cdn

vue.js 的核心是實現了 mvvm 模式,她扮演的角色就是 viewmodel 層,那麼所謂的第乙個應用程式就是展示她的 資料繫結 功能,操作流程如下:

1. 建立乙個 html 檔案

2. 引入 vue.js

<

script

src=""

>

script

>

3. 建立乙個 vue 例項

<

script

>

varvm

=new

vue(

});script

>

4. 將資料繫結到頁面元素

<

div

id>

hello } !!!

div>

說明:只需要在繫結的元素中使用 雙花括號 將 vue 建立的名為 message 屬性包裹起來,即可實現資料繫結功能,也就實現了 viewmodel 層所需的效果,是不是和 el 表示式非常像?

/*建立乙個 vue 例項

*/var

vm =

newvue(

});script

>

html

>

為了能夠更直觀的體驗 vue 帶來的資料繫結功能,我們需要在瀏覽器測試一番,操作流程如下:

在瀏覽器上執行第乙個 vue 應用程式,進入 開發者工具

在控制台輸入 vm.message = 『hello world』 ,然後 回車,你會發現瀏覽器中顯示的內容會直接變成 hello world

此時就可以在控制台直接輸入 vm.message 來修改值,中間是可以省略 data 的,在這個操作中,我並沒有主動操作 dom,就讓頁面的內容發生了變化,這就是借助了 vue 的 資料繫結 功能實現的;mvvm 模式中要求 viewmodel 層就是使用 觀察者模式 來實現資料的監聽與繫結,以做到資料與檢視的快速響應。

————————————————

Vue學習筆記2 MvVM模式和第乙個Vue程式

vue官方文件 為什麼要使用mvvm mvvm模式和mvc模式一樣,主要目的是分離檢視 view 和模型 model 有幾大好處 view view是檢視層,也就是使用者介面。前端主要由html和css來構建,為了更方便地展現viewmode 或者model層的資料,已經產生了各種各樣的前後端模板語...

python第乙個程式設計 第乙個 Python 程式

簡述 安裝完 python 後,windows 中 開始選單或安裝目錄下就會有 idle 開發 python 程式的基本 ide 整合開發環境 幫助手冊 模組文件等。linux 中 只需要在命令列中輸入 python 命令即可啟動互動式程式設計。互動式程式設計 互動式程式設計不需要建立指令碼檔案,是...

第乙個 爬蟲和測試

1.爬蟲 如下 import requests def gerhtmltext url try r requests.get url,timeout 1 r.raise for status r.encoding utf 8 return r.text except return 訪問錯誤 url ...