亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Vue基本語(yǔ)法

ShevaKuilin / 1048人閱讀

摘要:基本語(yǔ)法和組件傳參基本語(yǔ)法是一個(gè)的框架數(shù)據(jù)驅(qū)動(dòng)和組件化是的核心思想。這種語(yǔ)法為請(qǐng)輸入代碼語(yǔ)法這里是的值網(wǎng)頁(yè)上就會(huì)顯示出來(lái)里面的值。七和語(yǔ)言中的一樣的語(yǔ)法效果。我花費(fèi)了元運(yùn)行結(jié)果如下圖至此,講完了的基本語(yǔ)法撒花

Vue基本語(yǔ)法和組件傳參 基本語(yǔ)法

Vue是一個(gè) MVVM 的框架,數(shù)據(jù)驅(qū)動(dòng)組件化是Vue的核心思想。簡(jiǎn)單的講MVVM框架就是:我們只需要在數(shù)據(jù)層做數(shù)據(jù)操作,顯示層會(huì)檢測(cè)到我們每次的數(shù)據(jù)變化,然后做出相應(yīng)的改變,監(jiān)測(cè)數(shù)據(jù)這個(gè)工作就是中間的ViewModel。通過(guò)這種模式,我們就可以不用再直接操作DOM節(jié)點(diǎn)來(lái)進(jìn)行數(shù)據(jù)的改變。

一、插值

{{data}} 在模板里可以實(shí)現(xiàn)data數(shù)據(jù)的展示,如果data數(shù)據(jù)改變,展示的數(shù)據(jù)也會(huì)響應(yīng)式的改變。響應(yīng)式的改變意味著我們不需要強(qiáng)制刷新頁(yè)面就可以實(shí)現(xiàn)數(shù)據(jù)的變化。這種語(yǔ)法為請(qǐng)輸入代碼Mustache語(yǔ)法

export default {
    name:"phonerisk",
    data(){
        return{
            title:"testTitle"
        }
    }
}


網(wǎng)頁(yè)上就會(huì)顯示出來(lái)data里面title的值。

二、v-html

v-html可以將一段HTML的代碼字符串輸出成HTML片段而不是普通的文本。

export default {
    name:"phonerisk",
    data(){
        return{
            html:"v-if"
        }
    }
}


網(wǎng)頁(yè)上將html字符串渲染成顏色為藍(lán)色的普通文本。

三、v-bind

Mustache·語(yǔ)法不能用于HTML上,所以我們需要綁定一些屬之類的需要使用v-bind。v-bind就是將data里面的數(shù)據(jù)綁定到HTML上面,從而實(shí)現(xiàn)屬性的變化。

export default {
    name:"phonerisk",
    data(){
        return{
             imgUrl:"../../static/img/KFC.e66b2f8e.png"
        }
    }
}


v-bind 可以簡(jiǎn)寫成 :

四、v-model

v-model是用于表單輸入的數(shù)據(jù)雙向綁定。所謂雙向綁定就是視圖層的數(shù)據(jù)變化會(huì)引起數(shù)據(jù)層數(shù)據(jù)的改變,相反的,數(shù)據(jù)層的變化也會(huì)導(dǎo)致視圖層展示數(shù)據(jù)的變化。

export default {
    name:"phonerisk",
    data(){
        return{
            name:"小明"
        }
    },
    methods:{
        changeName(){
            this.name = "小花";
        }
    }
}

input輸入框綁定name,輸入框初始顯示‘小明’,在輸入框里更改信息的時(shí)候,name同時(shí)發(fā)生改變,點(diǎn)擊按鈕改變name數(shù)值的時(shí)候,輸入框里面的數(shù)據(jù)同時(shí)發(fā)生改變。

五、v-on

v-on 用于監(jiān)聽(tīng)DOM事件,如按鈕的點(diǎn)擊事件、雙擊事件等。v-on 的簡(jiǎn)寫為 @,如下面的 @click 就等價(jià)為 v-on:click。

template>
    
  methods:{
        yes(){
            alert("我有啥不敢的?。。?);
        }
    }


這個(gè)案例是監(jiān)聽(tīng)按鈕的點(diǎn)擊事件,點(diǎn)擊之后調(diào)用 yes 函數(shù),然后彈出警告框。

在平時(shí)的開(kāi)發(fā)過(guò)程中我們可能會(huì)使用到 event.preventDefault() 或者 event.stopPropagation() 來(lái)阻止事件的繼續(xù)傳播,但是這個(gè)是直接操作DOM節(jié)點(diǎn),不符合Vue的思想。所以Vue采用修飾符來(lái)進(jìn)行相關(guān)的操作。下面我例舉幾個(gè)常用的,如了解更過(guò),可以查看Vue的官網(wǎng)進(jìn)行更詳細(xì)的學(xué)習(xí)。

.stop

沒(méi)有加修飾符
 methods:{
        yes(){
            alert("我有啥不敢的?。。?);
        },
        div(){
            alert("我會(huì)DIV");
        }
    }

效果如下圖:

加了 .stop 修飾符之后的效果

效果如下圖:

.stop 修飾符阻止了事件的繼續(xù)傳播,所以子節(jié)點(diǎn)的 click事件沒(méi)有冒泡到父節(jié)點(diǎn),所以div的點(diǎn)擊監(jiān)聽(tīng)沒(méi)有監(jiān)聽(tīng)到內(nèi)容。

.prevent

沒(méi)有加修飾符
  

運(yùn)行結(jié)果如下圖:

加了 .prevent 修飾符之后的效果

.prevent 提交表單之后頁(yè)面不在重新渲染??梢钥吹?jīng)]加修飾符的時(shí)候頁(yè)面重新加載,但是在加修飾符之后,頁(yè)面不在重新加載。

.keyup


綁定到輸入框里,可以直接按enter鍵就出發(fā)提交的方法,和點(diǎn)擊提交按鈕一樣的效果,官網(wǎng)還提供了其他按鍵的別名

六、v-if

v-if用于做條件化的渲染,當(dāng)組件的判斷條件發(fā)生改變,這個(gè)組件會(huì)被銷毀并重建。

```javascript
    data(){
        return{
            display:true
        }
    },
    methods:{
        changeShow(){
          this.display = !this.display;
        },
    }

```
運(yùn)行結(jié)果如下圖:

v-if綁定的變量為 true 的時(shí)候,其所在的元素會(huì)被渲染出來(lái),反之亦然。

七、v-else、v-else-if

v-else 和C語(yǔ)言中的else一樣的語(yǔ)法效果。如果條件變量不滿足 v-if ,則執(zhí)行 的內(nèi)容

    
我叫001 我叫002

運(yùn)行效果和上圖一致。

v-else-if 是Vue2.1.0版本新增的一個(gè)屬性。v-else-if 必須用在 v-ifv-else 之間才有效果。

 data(){
        return{
            display:1
        }
    },
    methods:{
        changeShow(){
            this.display = (this.display + 1)%3;
        },
    }

運(yùn)行結(jié)果如下圖:

八、v-show

v-show 是切換元素的 display 屬性的。

 data(){
        return{
            display:true
        }
    },
    methods:{
        changeShow(){
            this.display = !this.display;
        },
    }

運(yùn)行效果如下圖:

九、v-for

v-for 用于多次渲染同一模板或者元素。

  • {{index}}、我的名字叫{{name}}
 data(){
        return{
           names:["jack","joe","Nancy", "lily"]
        }
    },

運(yùn)行結(jié)果如下圖:

v-for 多次渲染了li 里面的內(nèi)容,循環(huán)遍歷了names 數(shù)組,并將結(jié)放入 {{name}} 里面。

十、v-once

v-once 只渲染元素和組件一次,如果內(nèi)容改變,也會(huì)將元素、組件視為靜態(tài)元素跳過(guò)。

This will never change:{{msg}}
comment::: {{msg}}
  • {{i}}

This will change: This will never change:{{msg}}
comment::: {{msg}}
  • {{i}}
data() {
    return {
      msg: 111,
      names: ["jack", "joe", "Nancy", "lily"]
    };
  },
  methods: {
    changValue() {
      this.msg += 111;
      this.names[2] = "web";
    }
  }

運(yùn)行效果如下圖:

在點(diǎn)擊按鈕后, msg 會(huì)增加,但是上面有v-once指令的元素等則不會(huì)重新渲染。

十一、v-if和v-show的區(qū)別

前面講了v-ifv-show,兩個(gè)指令都是用在元素之間的顯示和隱藏的切換,那么,這兩個(gè)指令究竟有什么不同呢?接下來(lái)我將用一個(gè)示例來(lái)講解他們之間的差異。

data() {
    return {
      display: true
    };
  },
  methods: {
    changeValue() {
      this.display = !this.display;
    }
  }
.content {
  display: inline-block;
  width: 100px;
  height: 100px;
  border: solid 1px black;
  background-color: red;
}
.content + .content {
  margin-left: 20px;
}

運(yùn)行效果如下圖:

從上圖我們可以看出當(dāng)display 為 false 的時(shí)候,v-ifv-show顯示位置不一樣。

首先我們解讀一下這個(gè)代碼的css:content類設(shè)置了div的長(zhǎng)寬和背景色,dispaly屬性為 inline-block,
.content + .content 設(shè)置了如果有兩個(gè)content 類在一起的時(shí)候,后面一個(gè)的左邊距為20個(gè)像素。

dispalytrue 的時(shí)候,兩個(gè)div都靠左顯示。

displayfalse 的時(shí)候,上面的div在原來(lái)的位置重新渲染,但是下面的div卻有一個(gè)20像素的左邊距。

所以v-if渲染的時(shí)候,不會(huì)將不符合條件的元素加載到DOM樹(shù)里面,而v-show則會(huì)將所有的節(jié)點(diǎn)都加載到DOM樹(shù),然后根據(jù)條件,更改節(jié)點(diǎn)的display 屬性,生成不同的渲染樹(shù)。

一般來(lái)說(shuō), v-if需要更高的開(kāi)銷,每次都會(huì)改變DOM樹(shù),但是v-show 只需要改變?cè)氐?b> display ,開(kāi)銷更低。

十二、v-for和v-if優(yōu)先級(jí)問(wèn)題

當(dāng)v-forv-if 在同一個(gè)蒜素里的時(shí)候,前者比后者有更高的優(yōu)先級(jí),所以我們?cè)陂_(kāi)發(fā)中一定要注意優(yōu)先級(jí)的問(wèn)題。

如果我們是想有條件的跳過(guò)循環(huán)中的某些項(xiàng)的時(shí)候:

data() {
    return {
      counts:[11,22,33,44,55,66]
    };

運(yùn)行結(jié)果如下圖:

跳過(guò)了count 小于 30 的項(xiàng)

2.如果我們是打算有條件的跳過(guò)循環(huán)的話那么我們應(yīng)該將判斷寫在循環(huán)的外面,先判斷條件。

運(yùn)行結(jié)果如下圖:

至此,講完了Vue 的基本語(yǔ)法......撒花??ヽ(°▽°)ノ?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/101173.html

相關(guān)文章

  • Vue.js基本語(yǔ)法的介紹

    摘要:當(dāng)表達(dá)式的值發(fā)生變化時(shí),響應(yīng)應(yīng)用特定的行為到。指的是否重復(fù),對(duì)重復(fù)的進(jìn)行服用循環(huán)中,表示數(shù)組第個(gè)元素表示對(duì)象的樣式綁定樣式也可以根據(jù)中的變量來(lái)動(dòng)態(tài)確定。 介紹 前段時(shí)間接觸到一個(gè)庫(kù)叫做Vue.js, 個(gè)人感覺(jué)很棒,所以整理了一篇博文做個(gè)介紹。Vue讀音/vju:/,和view類似。是一個(gè)數(shù)據(jù)驅(qū)動(dòng)的web界面庫(kù)。Vue.js只聚焦于視圖層,可以很容易的和其他庫(kù)整合。代碼壓縮后只有24kb...

    Jensen 評(píng)論0 收藏0
  • 前端知識(shí)點(diǎn)總結(jié)——VUE(持續(xù)更新中)

    摘要:前端知識(shí)點(diǎn)總結(jié)持續(xù)更新中框架和庫(kù)的區(qū)別框架有著自己的語(yǔ)法特點(diǎn)都有對(duì)應(yīng)的各個(gè)模塊庫(kù)專注于一點(diǎn)框架的好處提到代碼的質(zhì)量,開(kāi)發(fā)速度提高代碼的復(fù)用率降低模塊之間的耦合度高內(nèi)聚低耦合思維模式的轉(zhuǎn)換從操作的思維模式切換到以數(shù)據(jù)為主概述是一個(gè)漸進(jìn)式的構(gòu)建 前端知識(shí)點(diǎn)總結(jié)——VUE(持續(xù)更新中) 1.框架和庫(kù)的區(qū)別: 框架:framework 有著自己的語(yǔ)法特點(diǎn)、都有對(duì)應(yīng)的各個(gè)模塊庫(kù) library ...

    big_cat 評(píng)論0 收藏0
  • Vue.js中前端知識(shí)點(diǎn)總結(jié)筆記

    摘要:框架和庫(kù)的區(qū)別框架有著自己的語(yǔ)法特點(diǎn)都有對(duì)應(yīng)的各個(gè)模塊庫(kù)專注于一點(diǎn)框架的好處提到代碼的質(zhì)量,開(kāi)發(fā)速度提高代碼的復(fù)用率降低模塊之間的耦合度高內(nèi)聚低耦合思維模式的轉(zhuǎn)換從操作的思維模式切換到以數(shù)據(jù)為主概述是一個(gè)漸進(jìn)式的構(gòu)建用戶界面的框架小到的簡(jiǎn)單1.框架和庫(kù)的區(qū)別: 框架:framework 有著自己的語(yǔ)法特點(diǎn)、都有對(duì)應(yīng)的各個(gè)模塊庫(kù) library 專注于一點(diǎn) 框架的好處: 1.提到代碼的質(zhì)...

    番茄西紅柿 評(píng)論0 收藏0
  • 手把手教你從零寫一個(gè)簡(jiǎn)單的 VUE--模板篇

    摘要:轉(zhuǎn)換成為模板函數(shù)聯(lián)系上一篇文章,其實(shí)模板函數(shù)的構(gòu)造都大同小異,基本是都是通過(guò)拼接函數(shù)字符串,然后通過(guò)對(duì)象轉(zhuǎn)換成一個(gè)函數(shù),變成一個(gè)函數(shù)之后,只要傳入對(duì)應(yīng)的數(shù)據(jù),函數(shù)就會(huì)返回一個(gè)模板數(shù)據(jù)渲染好的字符串。 教程目錄1.手把手教你從零寫一個(gè)簡(jiǎn)單的 VUE2.手把手教你從零寫一個(gè)簡(jiǎn)單的 VUE--模板篇 Hello,我又回來(lái)了,上一次的文章教會(huì)了大家如何書(shū)寫一個(gè)簡(jiǎn)單 VUE,里面實(shí)現(xiàn)了VUE 的...

    feng409 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<