【三】vue的基本語(yǔ)法

一英遭、代碼規(guī)范

1.縮進(jìn)4個(gè)空格掷伙、2個(gè)空格务唐,推薦2個(gè)空格

二、模版語(yǔ)法

1灼卢、Mustache

  • 將data中的文本數(shù)據(jù)绍哎,插入到HTML中
    • 可以通過(guò)Mustache語(yǔ)法(也就是雙大括號(hào))
<body>
  <div id="app">
    <h2>{{message}}</h2>
    <h2>{{message}},李銀河</h2>
    <!--musatache語(yǔ)法中,不僅 可以直接寫(xiě)變量鞋真,也可以寫(xiě)簡(jiǎn)單的表達(dá)式-->
    <h2>{{firstName + lastName}}</h2>
    <h2>{{firstName + ' ' + lastName}}</h2>
    <h2>{{firstName}} {{lastName}}</h2>
    <h2>{{counter * 2}}</h2>

  </div>  
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        message: '你好啊',
        firstName: 'kobe',
        lastName: 'bryant',
        counter: 100
      }
    })
  </script>
</body>

2崇堰、v-once

  • 不希望界面隨意的跟隨改變,可以使用vue的一個(gè)指令:v-once
  • 該指令后面不需要跟任何表達(dá)式(比如之前的v-for后面是有跟表達(dá)式的)
  • 該指令表示元素和組件只渲染一次涩咖,不會(huì)隨著數(shù)據(jù)的改變而改變
<body>
  <div id="app">
    <h2>{{message}}</h2>
    <h2 v-once>{{message}}</h2>

  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        message: '你好啊'
      }
    })
  </script>
</body>

3海诲、v-html

  • 某些情況下,我們從服務(wù)器請(qǐng)求到的數(shù)據(jù)本身就是一個(gè)HTML代碼
    • 如果我們直接通過(guò){{}}輸出檩互,會(huì)將HTML代碼也一起輸出
    • 按照HTML格式進(jìn)行解析特幔,并且顯示對(duì)應(yīng)的內(nèi)容,可以使用v-html指令
    • 該指令后面往往會(huì)跟上一個(gè)string類(lèi)型
    • 會(huì)將string的html解析出來(lái)并進(jìn)行渲染
<body>
  <div id="app">
    <h2>{{url}}</h2>
    <h2 v-html="url">{{url}}</h2>

  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        message: '你好啊',
        url: '<a 
      }
    })
  </script>
</body>

結(jié)果

4闸昨、v-text

  • v-text作用和Mustache比較相似:都是用于 將數(shù)據(jù)顯示在界面中
  • v-text通常情況下蚯斯,接受一個(gè)string類(lèi)型
<body>
  <div id="app">
    <h2>{{message}}</h2>
    <h2 v-text="message"></h2>

  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        message: '你好啊'
      }
    })
  </script>
</body>

5、v-pre

  • 用于跳過(guò)這個(gè)元素和它自元素的編譯過(guò)程饵较,用于顯示原本的Mustache語(yǔ)法
<body>
  <div id="app">
    <h2>{{message}}</h2>
    <h2 v-pre="message">{{message}}</h2>

  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        message: '你好啊'
      }
    })
  </script>

結(jié)果

6拍嵌、v-cloak

  • 在某些情況下,瀏覽器可能會(huì)直接顯示出未編譯的Mustache標(biāo)簽
  • cloak:斗篷
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
  <title>Document</title>
  <style>
    [v-cloak]{
      display: none;
    }
  </style>
</head>
<body>
  <div id="app" v-cloak>
    <h2>{{message}}</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    //在div解析之前循诉,div中有一個(gè)屬性v-cloak
    //在div解析之后横辆,div中沒(méi)有一個(gè)屬性v-cloak
    setTimeout(function(){
      const app = new Vue({
        el: "#app",
        data: {
          message: '你好啊'
        }
      })
    }, 1000)
  </script>
</body>

7、v-bind

  • 除了內(nèi)容需要?jiǎng)討B(tài)綁定外茄猫,某些屬性我們也希望動(dòng)態(tài)來(lái)綁定
    • 比如動(dòng)態(tài)綁定a元素的href屬性
    • 比如動(dòng)態(tài)綁定img元素的src屬性
  • 這個(gè)時(shí)候狈蚤,我們可以使用v-bind指令
    • 作用:動(dòng)態(tài)綁定屬性
    • 縮寫(xiě)::
    • 預(yù)期:any(with argument)|Object (without argument)
    • 參數(shù):attrOrProp(optional)
<body>
  <div id="app">
    <!--錯(cuò)誤做法,這里不可以使用Mustache語(yǔ)法-->
    <!-- <img src="{{imgurl}}" alt=""> -->
    <!-- 正確做法划纽,使用v-bind指令 -->
    <img v-bind:src="imgurl" alt="">
    <a v-bind:href="arhref">百度一下</a>

    <!--語(yǔ)法糖的寫(xiě)法-->
    <img :src="imgurl" alt="">
    <a :href="arhref">百度一下</a>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    //在div解析之前脆侮,div中有一個(gè)屬性v-cloak
    //在div解析之后,div中沒(méi)有一個(gè)屬性v-cloak
  const app = new Vue({
    el: "#app",
    data: {
      message: '你好啊',
      imgurl: 'https://upload-images.jianshu.io/upload_images/18396394-76fa65fca9046495.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp',
      arhref: 'http://www.baidu.com'
    }
  })
  </script>
</body>
  • 很多時(shí)候勇劣,我們希望動(dòng)態(tài)的來(lái)切換class靖避,比如
    • 當(dāng)數(shù)據(jù)為某個(gè)狀態(tài)是,字體顯示紅色
    • 當(dāng)數(shù)據(jù)另一個(gè)狀態(tài)是芭毙,字體顯示黑色
  • 綁定class有兩種方式:
    • 對(duì)象語(yǔ)法
    • 數(shù)組語(yǔ)法
      1筋蓖、v-bind動(dòng)態(tài)綁定class屬性:對(duì)象語(yǔ)法
  • 對(duì)象語(yǔ)法的含義是:class后面跟的是一個(gè)對(duì)象
<body>
  <div id="app">
    <!-- <h2 class="active">{{message}}</h2>
    <h2 :class="active">{{message}}</h2> -->
    <!-- 通過(guò)控制boolean值決定標(biāo)簽是否有此類(lèi)名 -->
    <!-- <h2 v-bind:class="{類(lèi)名1: true, 類(lèi)名2: false}">{{message}}</h2> -->
    <h2 v-bind:class="{active: isActive, line: isLine}">{{message}}</h2>
    <h2 v-bind:class="getClasses()">{{message}}</h2>
    <button v-on:click="btnclick">按鈕</button>

  </div>
  <script src="../js/vue.js"></script>
  <script>

  const app = new Vue({
    el: "#app",
    data: {
      message: '你好啊',
      isActive: true,
      isLine: true
    },
    methods:{
      btnclick: function(){
        this.isActive = !this.isActive
      },
      getClasses: function(){
        return { active: this.isActive, line: this.isLine }
      }
    }
  })
  </script>
</body>

2退敦、v-bind動(dòng)態(tài)綁定class屬性:數(shù)組語(yǔ)法

  • 當(dāng)class數(shù)組里沒(méi)有單/雙引號(hào)時(shí)粘咖,按變量處理,結(jié)果是aaaaa bbbbb
  • 當(dāng)class數(shù)組里有單/雙引號(hào)時(shí)侈百,按字符串處理瓮下,結(jié)果是active line
<body>
  <div id="app">
    <h2 class="title" v-bind:class="['active', 'line']">{{message}}</h2>
    <h2 v-bind:class="getClasses()">{{message}}</h2>

    <button v-on:click="btnclick">按鈕</button>

  </div>
  <script src="../js/vue.js"></script>
  <script>

  const app = new Vue({
    el: "#app",
    data: {
      message: '你好啊',
      isActive: true,
      isLine: true,
      active: 'aaaaa',
      line: 'bbbbb'
    },
    methods: {
      getClasses: function () {
        return { active: this.isActive, line: this.isLine }
      }
    }
  })
  </script>
</body>

8翰铡、v-bind綁定style

  • 我們可以利用v-bind:style來(lái)綁定一些CSS內(nèi)聯(lián)樣式
  • 在寫(xiě)CSS屬性名的時(shí)候,比如font-size讽坏,我們可以使用駝峰式锭魔,fontSize
  • 或短橫線分割:'font-size'
  • 綁定class有兩種方式
    • 對(duì)象語(yǔ)法
      • style后面跟的是一個(gè)對(duì)象類(lèi)型
        • 對(duì)象的key是CSS屬性名稱
        • 對(duì)象的value是具體賦的值
<body>
  <div id="app">
      <!-- <h2 :style="{key(屬性名): value(屬性值)}">{{message}}</h2> -->
      <!-- 50px必須加單引號(hào),否則當(dāng)成變量使用了 -->
      <h2 :style="{fontSize: '50px'}">{{message}}</h2>
      <!-- 把finalSize當(dāng)成一個(gè)變量 -->
      <!-- <h2 :style="{fontSize: finalSize}">{{message}}</h2> -->
      <h2 :style="{fontSize: finalSize + 'px', color: finalColor}">{{message}}</h2>
      <h2 :style="getStyle()">{{message}}</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>

  const app = new Vue({
    el: "#app",
    data: {
      message: '你好啊',
      finalSize: 100,
      finalColor: 'red'
    },
    methods:{
      getStyle: function (){
        return { fontSize: this.finalSize + 'px', color: this.finalColor }
      }
    }
  })
  </script>
</body>
  • 數(shù)組語(yǔ)法
    - style后面跟的是一個(gè)數(shù)組類(lèi)型:多個(gè)值路呜,分割即可
<body>
  <div id="app">
      <h2 :style="[baseStyle, baseStyle1]">{{message}}</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>

  const app = new Vue({
    el: "#app",
    data: {
      message: '你好啊',
      baseStyle: {backgroundColor: 'red'},
      baseStyle1: {fontSize: '100px'}
    }
  })
  </script>
</body>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迷捧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胀葱,更是在濱河造成了極大的恐慌漠秋,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抵屿,死亡現(xiàn)場(chǎng)離奇詭異庆锦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)轧葛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)搂抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人尿扯,你說(shuō)我怎么就攤上這事求晶。” “怎么了姜胖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵誉帅,是天一觀的道長(zhǎng)淀散。 經(jīng)常有香客問(wèn)我右莱,道長(zhǎng),這世上最難降的妖魔是什么档插? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任慢蜓,我火速辦了婚禮,結(jié)果婚禮上郭膛,老公的妹妹穿的比我還像新娘晨抡。我一直安慰自己,他們只是感情好则剃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布耘柱。 她就那樣靜靜地躺著,像睡著了一般棍现。 火紅的嫁衣襯著肌膚如雪调煎。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天己肮,我揣著相機(jī)與錄音士袄,去河邊找鬼悲关。 笑死,一個(gè)胖子當(dāng)著我的面吹牛娄柳,可吹牛的內(nèi)容都是我干的寓辱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼赤拒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼秫筏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起挎挖,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤跳昼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后肋乍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鹅颊,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年墓造,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堪伍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡觅闽,死狀恐怖帝雇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛉拙,我是刑警寧澤尸闸,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站孕锄,受9級(jí)特大地震影響吮廉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜畸肆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一宦芦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轴脐,春花似錦调卑、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至碴巾,卻和暖如春溯捆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背餐抢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工现使, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留低匙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓碳锈,卻偏偏與公主長(zhǎng)得像顽冶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子售碳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一强重、Mustache 如何將data中的文本數(shù)據(jù),插入到HTML中呢贸人?我們已經(jīng)學(xué)習(xí)過(guò)了间景,可以通過(guò)Mustache語(yǔ)...
    c_gentle閱讀 1,650評(píng)論 0 0
  • Vue基礎(chǔ)語(yǔ)法 內(nèi)容概述 插值操作 綁定屬性 計(jì)算屬性 事件監(jiān)聽(tīng) 條件判斷 循環(huán)遍歷 階段案例 v-model 一...
    songstar閱讀 487評(píng)論 0 0
  • Vue的基礎(chǔ)語(yǔ)法 一、插值操作 ? 1.使用Mustache語(yǔ)法獲取data中的數(shù)據(jù) 示例: 使用Mustac...
    waigo閱讀 467評(píng)論 0 1
  • MVVM的基本概念: M指的是數(shù)據(jù)(model)互广,V是視圖砌庄,VM是視圖模型渔扎,將數(shù)據(jù)綁定視圖上(雙向綁定),view...
    Angrybird233閱讀 329評(píng)論 0 5
  • mustache 語(yǔ)法 { { } } mustache 語(yǔ)法 將 data 中的數(shù)據(jù)在 DOM 元素上展示 在元...
    coderlion閱讀 1,537評(píng)論 0 0