Vue教程01

基礎入門

1.第一個案例

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <!-- 1. 導入Vue的包 -->
  <script src="./lib/vue-2.4.0.js"></script>
</head>

<body>
  <!-- 將來 new 的Vue實例,會控制這個 元素中的所有內容 -->
  <!-- 3. Vue 實例所控制的這個元素區域,就是我們的 V  -->
  <div id="app">
    <p>{{ msg }}</p>
  </div>

  <script>
    // 2. 創建一個Vue的實例
    // 當我們導入包之後,在瀏覽器的內存中,就多了一個 Vue 構造函數
    //  注意:我們 new 出來的這個 vm 對象,就是我們 MVVM中的 VM調度者
    var vm = new Vue({
      el: '#app',  // 表示,當前我們 new 的這個 Vue 實例,要控制頁面上的哪個區域
      // 這裏的 data 就是 MVVM中的 M,專門用來保存 每個頁面的數據的
      data: { // data 屬性中,存放的是 el 中要用到的數據
      msg: '歡迎學習Vue' // 通過 Vue 提供的指令,很方便的就能把數據渲染到頁面上,程序員不再手動操作DOM元素了【前端的Vue之類的框架,不提倡我們去手動操作DOM元素了】
      }
    })
  </script>
</body>
</html>

2.常用指令

指令 描述
{{}} 插值表達式 (插值閃爍的問題)
v-cloak 解決 插值表達式閃爍的問題
v-text 和插值一樣也是使用vue中的變量,但是默認沒有閃縮問題,但是會覆蓋原本的內容,插值不會
v-html 顯示HTML的內容
v-bind Vue提供的屬性綁定機制,縮寫是 ‘:’
v-on Vue提供的事件綁定機制,縮寫是:’@’

2.1 v-cloak

v-cloak指令可以解決上面插值閃爍的問題,如下:其實利用的就是當插值沒有被加載出來的是通過 style屬性將內容給隱藏了。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    [v-cloak] {
       display: none; 
    }
  </style>
</head>

<body>
  <div id="app">
    <!-- 使用 v-cloak 能夠解決 插值表達式閃爍的問題 -->
    <p v-cloak>++++++++ {{ msg }} ----------</p>
  </div>
  <script src="./lib/vue-2.4.0.js"></script>

  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        msg: 'hello',
      }
    })
  </script>
</body>

</html>

2.2 v-text

和插值差不多,也可以從vue對象中獲取信息,v-text默認是沒有閃爍問題的,但是會覆蓋掉原有的內容,但是 插值表達式 只會替換自己的這個佔位符,不會把 整個元素的內容清空,如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
        <p>----{{msg}}=====</p>
        <p v-text="msg"></p>
        <p v-text="msg">*******</p>
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"hello vue"
            }
        })
    </script>
</body>
</html>

2.3 v-html

默認我們從Vue對象中獲取的信息如果含有HTML標籤的話只會當做普通字符串顯示,如果我們要顯示標籤的語義,那麼需要使用v-html指令如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
        <p>----{{msg}}=====</p>
        <p v-text="msg"></p>
        <p v-text="msg">*******</p>
        <p v-html="msg"></p>
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"<h3>hello vue</h3>"
            }
        })
    </script>
</body>
</html>

2.4 v-bind

v-bind是 Vue中,提供的用於綁定屬性的指令,可簡寫爲":",屬性中的內容其實寫的是js表達式,可以做類似的處理,見代碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="提交1" title="提交按鈕"><br>
        <input type="button" value="提交2" v-bind:title="title">
        <!-- 注意: v-bind: 指令可以被簡寫爲 :要綁定的屬性 -->
        <input type="button" value="提交2" :title="title">
        <!-- v-bind 中,可以寫合法的JS表達式-->
       <input type="button" value="提交2" :title="title + ' bbb'">
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                title:"title123"
            }
        })
    </script>
</body>
</html>

2.5 v-on

Vue 中提供了 v-on: 事件綁定機制,具體使用如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="點擊" v-on:click="show">
        <!--還可以縮寫爲 @-->
        <input type="button" value="點擊" @click="show">
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"<h3>hello vue</h3>"
            },
            methods:{
                show:function(){
                    alert('hello')
                }
            }
        })
    </script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章