Vue.js-----輕量高效的MVVM框架(一、初識Vue.js)


1、什么是Vue.js?

眾所周知,最近幾年前端發展非常的迅猛,除各種框架如:backbone、angular、reactjs外,還有模塊化開發思想的實現庫:sea.js 、require.js 、webpack以及前端上線部署集成工具如: grunt、gulp、fis等。

Vue.js與reactjs相似,是一個構建數據驅動的 web 界面的庫,一個注重ViewModel的典型的MVVM框架。Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定組合的視圖組件

Vue.js 自身不是一個全能框架——它只聚焦於視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能完美地驅動復雜的單頁應用。

2、Vue.js的獨特之處

2.1 響應的數據綁定

Vue.js 的核心是一個響應的數據綁定系統,它讓數據與 DOM 保持同步非常簡單。在使用 jQuery 手工操作 DOM 時,我們的代碼常常是命令式的、重復的與易錯的。Vue.js 擁抱數據驅動的視圖概念。通俗地講,它意味着我們在普通 HTML 模板中使用特殊的語法將 DOM “綁定”到底層數據。一旦創建了綁定,DOM 將與數據保持同步。每當修改了數據,DOM 便相應地更新。這樣我們應用中的邏輯就幾乎都是直接修改數據了,不必與 DOM 更新攪在一起。這讓我們的代碼更容易撰寫、理解與維護。

(1)下載安裝vue.js

下載地址:開發版本或者生產版本(在開發時請用開發版本,遇到常見錯誤它會給出友好的警告。)

安裝

在html文本中引入vue.js

<script type="text/javascript" src="js/vue.js"></script>

注意:Vue.js 不支持 IE8 及其以下版本,因為 Vue.js 使用了 IE8 不能實現的 ECMAScript 5 特性。 Vue.js 支持所有兼容 ECMAScript 5 的瀏覽器。

 

(2)js常用框架對比

Jquery: jquery依然依靠豐富的dom操作去組合業務邏輯,當業務邏輯復雜的時候,每行代碼都會有不知所雲的感覺。因為:

第一:業務邏輯和UI更改該混在一起,

第二:UI里面還參雜這交互邏輯,讓本來混亂的邏輯更加混亂。

當然第二點從另一方面看也是優點,因為有的時候UI交互邏輯能夠更加靈活地嵌入到業務邏輯,這在其他MV*框架中都是比較難處理的。

Vue: vuejs非常精簡,代碼量非常少的實現了MVVM框架,在用 Vue.js 構建大型應用時推薦使用 NPM 安裝,NPM 能很好地和諸如 Webpack 或Browserify 的 CommonJS 模塊打包器配合使用。Vue.js 也提供配套工具來開發單文件組件。

reactjs: reactjs代碼量最多,因為它既要管理UI邏輯,又要操心dom的渲染。

extjs: extjs是唯一一個讓User和View解耦,通過事件回調去關聯起來。也可通過watch去實現雙向綁定。

angular: angular是一個豐富的javascript庫,也是MVVM模式。如果要用angular開發應用,那么從開始到結束,會接觸到angular的內部的不同組件,當然學習曲線也比較陡。

 3、示例

一個最簡單的例子

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <script type="text/javascript" src="js/vue.js"></script>
        <title></title>
    </head>

    <body>
        <div id="app">
            {{message}}
        </div>
        <script>
            var msgData = "Hello vue.js!";
            var app = new Vue({
                el: "#app",
                data: {
                    "message": msgData
                }
            });
        </script>
    </body>

</html>

 

結果展示:

Hello vue.js!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM