1. 程式人生 > >五個小案例帶你學習火熱的Vue.js

五個小案例帶你學習火熱的Vue.js

vue.js背後的理念是提供儘可能簡單的API,在檢視(HTML)和模型(javascript物件)建立實時的雙向繫結機制。正如你在下面的例子中所看到的,這個框架使用起來非常的高效且不影響任何功能。

開始起步

安裝Vue.js最簡單的方式是用一個<script>標籤在HTML的body後邊。整個框架位於一個JavaScript檔案,您也可以從官方網站下載或直接通過CDN引入:<script src="http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.16/vue.js"></script>
如果你想在Node.js專案中使用這個類庫,Vue也可以通過npm 模組安裝。用一個官方的命令點我,它允許使用者基於預製模板的建立快速建立整個專案。
下面是五個程式碼預覽編輯器,包含我們為您建立的示例應用程式。該程式碼有很多註釋,並在每個檔案中分離出來,使其很容易理解。編輯內建vue.js,所以不要害怕嘗試。此外,你可以打包下載所有的例子,下載按鈕在這篇文章的頂部。

1.導航選單

我們將要建立一個簡單的導航欄來說明我們的東西。幾乎每一個由vue.js組成的應用都需要有幾個基本的元件。他們是:

  • 模型,換句話說是我們app的資料,在Vue.js中這是一個包含變數和變數值的簡單的javascript物件。
  • HTML模板,用專業的術語就是檢視,在這裡我們選擇顯示事件監聽,和處理模型的不同用法。
  • 檢視模型 - 一個Vue把模型和檢視繫結在一起的例項,使他們能夠同步顯示。

在這些空洞的概念背後是該模型和檢視始終保持同步。模型改變檢視就會更新,反之亦然。在我們的第一個例子中,用active變數,表示該選單項是當前的選項。

例子程式碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        *{
        margin:0;
        padding:0;
    }

    body{
        font:15px/1.3 'Open Sans', sans-serif;
        color: #5e5b64;
        text-align:center;
    }

    a, a:visited {
        outline:none;
        color:#389dc1;
    }

    a:hover{
        text-decoration:none;
    }

    section, footer, header, aside, nav{
        display: block;
    }

    /*-------------------------
        The menu
    --------------------------*/

    nav{
        display:inline-block;
        margin:60px auto 45px;
        background-color:#5597b4;
        box-shadow:0 1px 1px #ccc;
        border-radius:2px;
    }

    nav a{
        display:inline-block;
        padding: 18px 30px;
        color:#fff !important;
        font-weight:bold;
        font-size:16px;
        text-decoration:none !important;
        line-height:1;
        text-transform: uppercase;
        background-color:transparent;

        -webkit-transition:background-color 0.25s;
        -moz-transition:background-color 0.25s;
        transition:background-color 0.25s;
    }

    nav a:first-child{
        border-radius:2px 0 0 2px;
    }

    nav a:last-child{
        border-radius:0 2px 2px 0;
    }

    nav.home .home,
    nav.projects .projects,
    nav.services .services,
    nav.contact .contact{
        background-color:#e35885;
    }

    p{
        font-size:22px;
        font-weight:bold;
        color:#7d9098;
    }

    p b{
        color:#ffffff;
        display:inline-block;
        padding:5px 10px;
        background-color:#c4d7e0;
        border-radius:2px;
        text-transform:uppercase;
        font-size:18px;
    }
    </style>
</head>
<body>
    <div id="main">
        <nav :class="active" @click.prevent>
            <a href="#" class="home" @click="makeActive('home')">Home</a>
            <a href="#" class="projects" @click="makeActive('projects')">Projects</a>
            <a href="#" class="services" @click="makeActive('services')">Services</a>
            <a href="#" class="contact" @click="makeActive('contact')">Contact</a>
        </nav>
        <p>You chose <b>{{active}}</b></p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
var vue=new Vue({
    el:"#main",
    data:{
        active:"home"
    },
    methods:{
        makeActive:function(item){
            this.active=item;
        }
    }

});
</script>
</html>
演示地址:
http://www.gbtags.com/gb/debug/7c2d1e0f-f66d-4159-8d30-50a25e96fd63.htm

正如你所看到的,這個庫使用的非常明瞭,Vue做了大量的處理,為我們提供熟悉的容易記憶的語法。

  • 所有的選項都是簡單的javascript物件
  • {{}}模板的雙向繫結。
  • v- 開頭的直接在HTML上新增內建屬性

2.內在編輯器

在前面的例子中,我們的模型只有一對預定義的值。如果我們希望給使用者設定任何資料的能力,我們可以進行雙向繫結,並將一個輸入域與模型屬性連線起來。當輸入文字時,它會自動儲存在text_content模型,從而使檢視的更新。
http://www.gbtags.com/gb/debug/d2c1903b-2c8f-4d9e-85f0-fda619070d02.htm

3.提交表單

這個例子說明了多個服務和它們的總成本。由於我們的服務是儲存在陣列中,我們可以利用的v-for指令迴圈輸出所有的輸入和顯示。如果一個新的元素新增到陣列或任何舊的改變,Vue.js會自動更新和顯示新的資料。
http://www.gbtags.com/gb/debug/a4de2033-9412-4b89-a9a9-00b11dac4461.htm
顯示價格在正確的格式,我們使用一個內建的過濾器來Vue.js。他們允許我們懶洋洋地修改模型資料–在這種情況下,貨幣的過濾器是完美的,因為它增加了一個美元符號和適當的小數位數。就像在Angular過濾器是使用|語法–{{ some_data | filter }}。

4.既時搜尋

在這裡,我們將建立一個應用程式,該應用程式在我們的網站上展示一些文章。該應用程式也將有一個搜尋領域,使我們能夠過濾哪些文章顯示。有一個過濾器過濾,但這不正是我們需要的,所以我們將建立自己的自定義過濾器。

http://www.gbtags.com/gb/debug/33625654-9173-49b5-9537-3e56d47e61b4.htm

輸入欄位繫結到要查詢的字串模式。當輸入文字時的模型是即時更新和傳遞給搜尋過濾器。這樣我們就可以建立一個實時搜尋,而不必擔心渲染或設定事件偵聽器–Vue.js處理所有!

5.變換佈局

在我們的最後一個例子中,我們將展示一個常見的場景,其中一個頁面有不同的佈局模式。就像在以前的應用程式我們將展示一系列從儲存在一個數組tutorialzine.com文章。

通過按下頂部欄中的一個按鈕,你可以在一個包含大影象的網格佈局之間切換,以及一個較小的影象和文字的列表佈局。

http://www.gbtags.com/gb/debug/6da7cffb-5f0a-45f3-9dc8-04916d170fc9.htm

結論

有很多Vue.js比我們展示這些例子。該庫還提供動畫,自定義元件和各種其他功能。我們建議您到官網http://vuejs.org/guide/檢視,這是充分的資訊和有用的片段。

Vue.js是否適合您的專案嗎?以下連結將對你有很大的幫助:

  • 一個官方的,與其他框架的詳細的比較。http://vuejs.org/guide/comparison.html
  • todomvc–是 一個同一應用程式是與許多不同的框架建立的網站。ps:(使用這些框架分別作出了一個個的todos;然後你就可以根據他們提供的程式碼來判斷某個框架是否適合你,因為雖然是同樣的功能,但是使用的框架不同,程式碼量不同,簡易程度不同,他們給我們提供了一個比較的標準。)
  • 我們的文章裡我們已經做過的類似的例子使用的React 和Angular.js。