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

詳解Vue中的基本語(yǔ)法和常用指令

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

什么是vue.js

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

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

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

Vue.js模本語(yǔ)法

1、插值表達(dá)式

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

 <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>菜鳥(niǎo)教程</h1>
    <p>學(xué)的不僅是技術(shù),更是夢(mèng)想!</p>
    <p>哈哈哈,打字辛苦?。。。?lt;/p>
   </template>
  </div>

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

如果 seen 為true 這顯示 p 標(biāo)簽。否則隱藏

注意:

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

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

v-for 指令需要以  site in sites 形式的特殊語(yǔ)法, 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.迭代對(duì)象中的屬性

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

其中:【userinfo】是一個(gè)對(duì)象

3.迭代數(shù)字

<p v-for="i in 10">這是第 {{i}} 個(gè)P標(biāo)簽</p>

4、Vue.js 常用指令

v-cloak : 能夠解決插值表達(dá)式閃爍的問(wèn)題

v-bind :是vue提供的用于綁定屬性的指令??梢院?jiǎn)寫為  : 要綁定的指令 。

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

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

注意: v-model指令只能運(yùn)用在表單元素中 。

<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 實(shí)例,得到 ViewModel
   var vm = new Vue({
    el: '#app',
    data: {
     msg: '大家都是好學(xué)生,愛(ài)敲代碼,愛(ài)學(xué)習(xí),愛(ài)思考,簡(jiǎn)直是完美,沒(méi)瑕疵!'
    },
    methods: {}
   });
  </script>

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

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

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

5、Vue.js 事件處理器

v-on :事件監(jiān)聽(tīng)可以使用 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` 對(duì)象中定義方法
    methods: {
     greet: function(event) {
      // `this` 在方法里指當(dāng)前 Vue 實(shí)例
      alert('Hello ' + this.name + '!')
      // `event` 是原生 DOM 事件
      if(event) {
       alert(event.target.tagName)
      }
     }
    }
   })
  </script>

6、事件修飾符

.stop       阻止冒泡

.prevent    阻止默認(rèn)事件

.capture    添加事件偵聽(tīng)器時(shí)使用事件捕獲模式

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

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

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

7、按鍵修飾符

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

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

綁定一個(gè)回車按鍵時(shí)間

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ù)組語(yǔ)法

即我們可以向v-bind:class 傳遞一個(gè)數(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í)在數(shù)組中我們也可以使用三元表達(dá)式:

<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' }">測(cè)試內(nèi)聯(lián)樣式</div>
   </div>

2、綁定樣式對(duì)象

<div id="app">
   <div v-bind:style="styleObject">測(cè)試綁定樣式對(duì)象</div>
  </div>

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

3、綁定多個(gè)樣式對(duì)象 

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

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

總結(jié)

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

相關(guān)文章

最新評(píng)論