首頁 > web前端 > js教程 > 主體

vue.js常用指令總結歸納

php中世界最好的语言
發布: 2018-04-16 11:07:04
原創
1429 人瀏覽過

這次帶給大家vue.js常用指令總結歸納,vue.js常用指令使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

Vue.js是當下很火的一個JavaScript MVVM(Model-View-ViewModel)函式庫,它是以資料驅動和元件化的想法建構的。相較於Angular.js,Vue.js提供了更簡潔、更易於理解的API,使得我們能夠快速地上手並使用Vue.js。

如果你之前已經習慣了用jQuery操作DOM,學習Vue.js時請先拋開手動操作DOM的思維,因​​為Vue.js是數據驅動的,你無需手動操作DOM。它透過一些特殊的HTML語法,將DOM和資料綁定起來。一旦你創建了綁定,DOM將和數據保持同步,每當變更了數據,DOM也會相應地更新。

當然了,在使用Vue.js時,你也可以結合其他函式庫一起使用,像是jQuery。

1.使用

使用Vue的過程就是定義MVVM(Model-View-ViewModel)各個組成部分的過程的過程。

<!--这里定义View-->
<p id="app">{{ message }}</p>
<script src="js/vue.js"></script>
<script>
    // 这里定义Model
    var exampleData = {
      message: 'Hello World!'
    }
    // 这里创建一个 Vue 实例或 "ViewModel"
    // 连接 View 与 Model
    new Vue({
      el: '#app',
      data: exampleData
    })
</script>
登入後複製

2.Vue.js的常用指令

Vue.js提供了一些常用的內建指令,接下來我們將介紹以下幾個內建指令: 

•v-if指令
•v-show指令
•v-else指令
•v-for指令
•v-bind指令
•v-on指令

Vue.js具有良好的擴充性,我們也可以發展一些自訂的指令,後面的文章會介紹自訂指令。

2.1 v-if指令

v-if後面賦予 可以轉換為布林類型表達式

<p id="app">
      <h1>Hello, Vue.js!</h1>
      <h1 v-if="yes">Yes!</h1>
      <h1 v-if="no">No!</h1>
      <h1 v-if="age >= 25">Age: {{ age }}</h1>
      <h1 v-if="name.indexOf(&#39;jack&#39;) >= 0">Name: {{ name }}</h1>
</p>
 <script src="js/vue.js"></script>
 <script>
    var vm = new Vue({
      el: '#app',
      data: {
        yes: true,
        no: false,
        age: 28,
        name: 'keepfool'
      }
    })
 </script>
登入後複製

這裡最後就輸出

<p id="app">
  <h1>Hello, Vue.js!</h1>
  <h1>Yes!</h1>
  <!---->
  <h1>Age: 28</h1>
  <!---->
</p>
登入後複製

2.2 v-show

 <p id="app">
      <h1>Hello, Vue.js!</h1>
      <h1 v-show="yes">Yes!</h1>
      <h1 v-show="no">No!</h1>
      <h1 v-show="age >= 25">Age: {{ age }}</h1>
      <h1 v-show="name.indexOf(&#39;jack&#39;) >= 0">Name: {{ name }}</h1>
    </p>
  </body>
  <script src="js/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        yes: true,
        no: false,
        age: 28,
        name: 'keepfool'
      }
    })
  </script>
登入後複製

這裡程式碼只是v-if改為v-show

# 輸出為

<p id="app">
<h1>Hello, Vue.js!</h1>
<h1>Yes!</h1>
<h1 style="display: none;">No!</h1>
<h1>Age: 28</h1>
<h1 style="display: none;">Name: keepfool</h1>
</p>
登入後複製

這裡差別是上面v-if直接不輸出html程式碼,這裡用display:none隱藏

2.3 v-else指令

<h1 v-if="age >= 25">Age: {{ age }}</h1>
<h1 v-else>Name: {{ name }}</h1>
<script src="js/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        age: 28,
        name: 'keepfool',
        sex: 'Male'
      }
    })
</script>
登入後複製

#  前一兄弟元素必須有 v-if 或 v-else-if,新版的vue.js新增了v-else-if用法也跟v-if一樣,不過前一兄弟元素必須有v-if或v-else-if,舊版的v-else前面可以跟v-show,但新版v-else前面不能是v-show了。

2.4 v-for指令

<p v-for="p in people">
   <h1>Age: {{ p.age }}</h1>
   <h1>Name: {{ p.name }}</h1>
   <h1>Sex: {{ p.sex }}</h1>
</p>
<script charset="utf-8" src="js/vue.js"></script>
<script type="text/javascript">
   var myModel = {
    people:[
      {
        age: 25,
        name: 'keepfool',
        sex: 'Male'
      },
      {
        age: 26,
        name: 'keepfool2',
        sex: 'FeMale'
      },
      {
        age: 27,
        name: 'keepfool3',
        sex: 'Male2'
      }
    ]
  };
 var vm = new Vue({
  el: '#app',
  data: myModel
})
</script>
登入後複製

# 父元素用v-for,子元素可以遍歷綁定的對應Array | Object | number | string

v-for還可以這樣用:

<p v-for="(item, index) in items"></p>
<p v-for="(val, key) in object"></p>
<p v-for="(val, key, index) in object"></p>
登入後複製

2.5 v-bind指令

v-bind指令可以在其名稱後面帶一個參數,中間放一個冒號隔開,這個參數通常是HTML元素的特性(attribute)

<p id="app">
   <ul class="pagination">
     <li v-for="n in pageCount">
       <a href="javascripit:void(0)" rel="external nofollow" v-bind:class="activeNumber === n ? &#39;active&#39; : &#39;&#39;">{{ n }}</a>
     </li>
   </ul>
</p>
 <script src="js/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        activeNumber: 1,
        pageCount: 10
      }
    })
  </script>
登入後複製

又例如:

<img v-bind:src="&#39;/path/to/images/&#39; + fileName">
<p v-bind="{ &#39;id&#39;: someProp, &#39;other-attr&#39;: otherProp }"></p>
登入後複製

2.6 v-on指令

<p id="app">
      <p><input type="text" v-model="message"></p>
      <p>
        <!--click事件直接绑定一个方法-->
        <button v-on:click="greet">Greet</button>
      </p>
      <p>
        <!--click事件使用内联语句-->
        <button v-on:click="say(&#39;Hi&#39;)">Hi</button>
      </p>
</p>
 <script src="js/vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        message: 'Hello, Vue.js!'
      },
      // 在 `methods` 对象中定义方法
      methods: {
        greet: function() {
          // // 方法内 `this` 指向 vm
          alert(this.message)
        },
        say: function(msg) {
          alert(msg)
        }
      }
    })
  </script>
登入後複製

2.7 v-model指令

v-model在表單控制項元素上建立雙向資料綁定

<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
登入後複製

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:



#

以上是vue.js常用指令總結歸納的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!