欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Vue中的基本語法和常用指令

 更新時間:2019年07月23日 16:32:03   作者:吳佼奮  
Vue.js 是一套構(gòu)建用戶界面的框架,**只關(guān)注視圖層**,它不僅易于上手,還便于與第三方庫或既有項目整合。這篇文章主要介紹了vue 的基本語法和常用指令,需要的朋友可以參考下

什么是vue.js

Vue.js是目前最火的一個前端框架,React是最流行的一個前端框架(React除了開發(fā)網(wǎng)站,還可以開發(fā)手機App, Vue語法也是可以用于進行手機App開發(fā)的,需要借助于Weex)

Vue.js 是前端的**主流框架之一**,和Angular.js、React.js 一起,并成為前端三大主流框架!

Vue.js 是一套構(gòu)建用戶界面的框架,**只關(guān)注視圖層**,它不僅易于上手,還便于與第三方庫或既有項目整合。(Vue有配套的第三方類庫,可以整合起來做大型項目的開發(fā))

Vue.js模本語法

1、插值表達式

數(shù)據(jù)綁定最常見的形式就是使用 {{...}}(雙大括號)的文本插值

 <div id="app">
   <div>{{ message }}</div>
  </div>

  <script>
   new Vue({
    el: '#app',
    data: {
     message: '<h1>vue的初次學(xué)習(xí)</h1>'
    }
   })
  </script>

v-html 指令 :用于輸出 html 代碼:

<div id="app">
   <div v-html="message"></div>
  </div>
  <script>
   new Vue({
    el: '#app',
    data: {
     message: '<h1>vue的初次學(xué)習(xí)</h1>'
    }
   })
  </script>

v-text 指令 :是用于輸出文本       

<div id="app">
   <div v-text="message"></div>
  </div>
  <script>
   new Vue({
    el: '#app',
    data: {
     message: '<h1>vue的初次學(xué)習(xí)</h1>'
    }
   })
  </script>

2、Vue.js的條件判斷

v-if條件判斷指令

<div id="app">
   <p v-if="seen">現(xiàn)在你看到我了</p>
   <template v-if="ok">
    <h1>菜鳥教程</h1>
    <p>學(xué)的不僅是技術(shù),更是夢想!</p>
    <p>哈哈哈,打字辛苦?。。?!</p>
   </template>
  </div>

  <script>
   new Vue({
    el: '#app',
    data: {
     seen: true,
     ok: true
    }
   })
  </script>

如果 seen 為true 這顯示 p 標簽。否則隱藏

注意:

1、    v-show 其用法和 v-if 相同也可以設(shè)置元素的顯示或隱藏。但是不具備條件判斷功能
2、    v-else、v-else-if 可以給v-if 設(shè)置一個 else 模塊、else-if模塊
3、    v-else 、v-else-if 必須要跟在 v-if 或v-else-if 模塊后面

3、Vue.js循環(huán)語法

v-for 指令需要以  site in sites 形式的特殊語法, sites 是源數(shù)據(jù)數(shù)組并且 site 是數(shù)組元素迭代的別名

1.迭代數(shù)組

<div id="app">
   <ol>
    <li v-for="site in sites">
     {{ site.name }}
    </li>
   </ol>
  </div>
  <script>
   new Vue({
    el: '#app',
    data: {
     sites: [
      {name: 'Runoob'},
      {name: 'Google'},
      {name: 'Taobao'}
      ]
    }
   })
  </script>

2.迭代對象中的屬性

<div v-for="(val, key, i) in userInfo">
{{val}} --- {{key}} --- {{i}}
</div>

其中:【userinfo】是一個對象

3.迭代數(shù)字

<p v-for="i in 10">這是第 {{i}} 個P標簽</p>

4、Vue.js 常用指令

v-cloak : 能夠解決插值表達式閃爍的問題

v-bind :是vue提供的用于綁定屬性的指令。可以簡寫為  : 要綁定的指令 。

<input type="button" value="按鈕" v-bind:title="mytitle + '123'">
<script>
   var vm = new Vue({
    el: '#app',
    data: {
     mytitle: '這是一個自己定義的title'
    },
    methods: {
     show: function() {
      alert('Hello')
     }
    }
   })
  </script>

v-model :v-bind 只能實現(xiàn)數(shù)據(jù)的單向綁定。從M 自動綁定到V , 無法實現(xiàn)數(shù)據(jù)的雙向綁定。 而 v-model 指令則可以實現(xiàn)表單元素和 M中數(shù)據(jù)的雙向綁定。

注意: v-model指令只能運用在表單元素中 。

<div id="app">
   <h4>{{ msg }}</h4>
   <!-- input(radio, text, address, email....) select checkbox textarea -->
   <input type="text" style="width:100%;" v-model="msg">
  </div>

  <script>
   // 創(chuàng)建 Vue 實例,得到 ViewModel
   var vm = new Vue({
    el: '#app',
    data: {
     msg: '大家都是好學(xué)生,愛敲代碼,愛學(xué)習(xí),愛思考,簡直是完美,沒瑕疵!'
    },
    methods: {}
   });
  </script>

補充說明:前端MVVM 與后端的MVC的區(qū)別。

MVC:是后端分層開發(fā)的概念。

MVVM是前端視圖層的概念。主要關(guān)注于視圖層分離,也就是說:MVVM吧前端的視圖層分為了三部分。Model ,View ,VM ViewModel

5、Vue.js 事件處理器

v-on :事件監(jiān)聽可以使用 v-on 指令

<div id="app">
   <!-- `greet` 是在下面定義的方法名 -->
   <button v-on:click="greet">Greet</button>
  </div>

  <script>
   var app = new Vue({
    el: '#app',
    data: {
     name: 'Vue.js'
    },
    // 在 `methods` 對象中定義方法
    methods: {
     greet: function(event) {
      // `this` 在方法里指當前 Vue 實例
      alert('Hello ' + this.name + '!')
      // `event` 是原生 DOM 事件
      if(event) {
       alert(event.target.tagName)
      }
     }
    }
   })
  </script>

6、事件修飾符

.stop       阻止冒泡

.prevent    阻止默認事件

.capture    添加事件偵聽器時使用事件捕獲模式

.self       只當事件在該元素本身(比如不是子元素)觸發(fā)時觸發(fā)回調(diào)

.once      事件只觸發(fā)一次

<div id="app">
   <!-- 使用 .stop 阻止冒泡 -->
   <div class="inner" @click="div1Handler">
    <input type="button" value="戳他" @click.stop="btnHandler">
   </div>
   <!-- 使用 .prevent 阻止默認行為 -->
   <!-- <a  @click.prevent="linkClick">有問題,先去百度</a> -->
   <!-- 使用 .capture 實現(xiàn)捕獲觸發(fā)事件的機制 -->
   <div class="inner" @click.capture="div1Handler">
    <input type="button" value="戳他" @click="btnHandler">
   </div> -->
   <!-- 使用 .self 實現(xiàn)只有點擊當前元素時候,才會觸發(fā)事件處理函數(shù) -->
   <div class="inner" @click="div1Handler">
    <input type="button" value="戳他" @click="btnHandler">
   </div>
   <!-- 使用 .once 只觸發(fā)一次事件處理函數(shù) -->
   <!-- <a  @click.prevent.once="linkClick">有問題,先去百度</a> -->
   <!-- 演示: .stop 和 .self 的區(qū)別 -->
   <div class="outer" @click="div2Handler">
    <div class="inner" @click="div1Handler">
     <input type="button" value="戳他" @click.stop="btnHandler">
    </div>
   </div>
   <!-- .self 只會阻止自己身上冒泡行為的觸發(fā),并不會真正阻止 冒泡的行為 -->
   <div class="outer" @click="div2Handler">
    <div class="inner" @click.self="div1Handler">
     <input type="button" value="戳他" @click="btnHandler">
    </div>
   </div>
  </div>
  <script>
   // 創(chuàng)建 Vue 實例,得到 ViewModel
   var vm = new Vue({
    el: '#app',
    data: {},
    methods: {
     div1Handler() {
      console.log('這是觸發(fā)了 inner div 的點擊事件')
     },
     btnHandler() {
      console.log('這是觸發(fā)了 btn 按鈕 的點擊事件')
     },
     linkClick() {
      console.log('觸發(fā)了連接的點擊事件')
     },
     div2Handler() {
      console.log('這是觸發(fā)了 outer div 的點擊事件')
     }
    }
   });
  </script>

7、按鍵修飾符

v-on:keyup : 允許為 v-on 在監(jiān)聽鍵盤事件時添加按鍵修飾符

<input v-on:keyup.enter="submit">

綁定一個回車按鍵時間

8、Vue.js 樣式的綁定

1、Class屬性的綁定(v-bind:class)

<style>
   .active {
    width: 100px;
    height: 100px;
    background: green;
   }
  </style>
<div id="app">
   <div v-bind:class="{ active: isActive }"></div>
  </div>
<script>
   new Vue({
    el: '#app',
    data: {
     isActive: true
    }
   })
  </script>

也可以:

<div id="app">
   <div v-bind:class="active"></div>
  </div>

2、數(shù)組語法

即我們可以向v-bind:class 傳遞一個數(shù)組

<style>
   .active {
    width: 100px;
    height: 100px;
    background: green;
   }
   
   .text-danger {
    background: red;
   }
  </style>
  <div id="app">
   <div v-bind:class="[activeClass, errorClass]"></div>
  </div>

  <script>
   new Vue({
    el: '#app',
    data: {
isActive: true,
     activeClass: 'active',
     errorClass: 'text-danger'
    }
   }) 
  </script>

同時在數(shù)組中我們也可以使用三元表達式:

<div v-bind:class="[errorClass ,isActive ? activeClass : '']"></div>

3、Vue.js 的內(nèi)聯(lián)樣式(v-bind:style)

1、直接設(shè)置樣式

<div id="app">
    <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">測試內(nèi)聯(lián)樣式</div>
   </div>

2、綁定樣式對象

<div id="app">
   <div v-bind:style="styleObject">測試綁定樣式對象</div>
  </div>

  <script>
   new Vue({
    el: '#app',
    data: {
     styleObject: {
      color: 'green',
      fontSize: '30px'
     }
    }
   })
  </script>

3、綁定多個樣式對象 

<div id="app">
   <div v-bind:style="[baseStyles, overridingStyles]">綁定多個樣式對象</div>
  </div>

  <script>
   new Vue({
    el: '#app',
    data: {
     baseStyles: {
      color: 'green',
      fontSize: '30px'
     },
     overridingStyles: {
      'font-weight': 'bold'
     }
    }
   })
  </script>

總結(jié)

以上所述是小編給大家介紹的vue 的基本語法和常用指令,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

最新評論