亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

探討Vue.js的組件和模板

 更新時(shí)間:2017年10月27日 14:36:32   投稿:mrr  
指令是Vue.js中一個(gè)重要的特性, 主要提供了一種機(jī)制將數(shù)據(jù)的變化映射為DOM行為。下面通過本文給大家分享Vue.js的組件和模板,需要的朋友參考下吧

摘要:

指令是Vue.js中一個(gè)重要的特性, 主要提供了一種機(jī)制將數(shù)據(jù)的變化映射為DOM行為。 那什么交數(shù)據(jù)的變化映射為DOM行為, Vue.js是通過數(shù)據(jù)驅(qū)動(dòng)的, 所以我們不會(huì)直接去修改DOM結(jié)構(gòu), 不會(huì)出現(xiàn)類似$('ul').append('<li>one</li>')這樣的操作, 當(dāng)數(shù)據(jù)變化時(shí),指令會(huì)一句設(shè)定好的操作對(duì)DOM進(jìn)行修改, 這樣就可以只關(guān)注數(shù)據(jù)的變化, 而不用去管理DOM的變化和狀態(tài),

Vue的內(nèi)置指令

1. v-bind

v-bind主要用于綁定DOM元素屬性(attribute),

即元素屬性實(shí)際的值是有vm實(shí)例中的data屬性提供的。

例如:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue的指令</title>
  <script src="../vue.js"></script>
</head>
<body>
<!-- HTML模版 -->
<div id="demo">
  <span v-bind:cutomId="id">{{message}}</span>
</div>
<script>
  //數(shù)據(jù)
  let obj ={
    message:"Hello World",
    id:'123'
  };
 //聲明式渲染
  var vm = new Vue({
    el:'#demo',
    data:obj  });
</script>
</body>
</html>

v-bind可以簡寫為“:”,

上述例子可以簡寫為<span :cotomId="id">

實(shí)現(xiàn)效果如下:

 

2. v-on

綁定事件監(jiān)聽器,簡寫為@。

昨天我們也用過,我們簡寫一下看一下效果

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue的指令</title>
  <script src="../vue.js"></script>
</head>
<body>
  <!-- HTML模版 -->
  <div id="demo">
    <span @click="clickHandle">{{message}}</span>
  </div>
  <script>
    //數(shù)據(jù)
    let obj = {
      message:"hello Vue"
    };
    //聲明式渲染
    var vm = new Vue({
      el:"#demo",
      data:obj,
      methods:{
        clickHandle(){
            alert("click")
            }
      }
    });
  </script>
</body>
</html>

效果如下:

3.v-html

v-html,參數(shù)類型為string,

作用為更新innerHTML,

接受的字符串不會(huì)進(jìn)行編譯等操作,

按普通HTML處理

代碼如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue的指令</title>
  <script src="../vue.js"></script>
</head>
<body>
<!-- HTML模版 -->
<div id="demo" v-html="HTML"></div>
<script>
  //數(shù)據(jù)
  let obj = {
    HTML:"<div>Hello World</div>"
  };
  var vm = new Vue({
    el:"#demo",
    data:obj  })
</script>
</body>
</html>

實(shí)現(xiàn)效果如下

更多內(nèi)置指令請(qǐng)查詢官網(wǎng):Vue.js指令

模板

html模板

        基于DOM的模板,模板都是可解析有效的html

插值

文本:使用“Mustache”語法(雙大括號(hào)){{value}}

    作用:替換實(shí)例上的屬性值,

    當(dāng)值改變時(shí),插值內(nèi)容就會(huì)自動(dòng)更新

原生的html:雙大括號(hào)輸出的是文本,不會(huì)解析html

屬性:使用v-bind進(jìn)行綁定,可以響應(yīng)變化

使用JavaScript表達(dá)式:可以寫簡單的表達(dá)式

字符串模板

template字符串

        template選項(xiàng)對(duì)象的屬性

        模板將會(huì)替換掛在元素。掛在元素的內(nèi)容都將被忽略。

代碼如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>template模板</title>
  <script src="../vue.js"></script>
</head>
<body>
  <!--HTML模板-->
  <div id="demo"></div>
  <script>
    //數(shù)據(jù)
    let obj = {
      html:"<div>String</div>",
      abc:1
    };
    var str = "<div>Hello</div>";
    var vm = new Vue({
      el:"#demo",
      data:obj,
      template:str    })
  </script>
</body>
</html>

有木有發(fā)現(xiàn)什么驚奇的變化

        根節(jié)點(diǎn)只能有一個(gè)

        將html結(jié)構(gòu)寫在一對(duì)script標(biāo)簽中,設(shè)置type="X-template"

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>template模板</title>
  <script src="../vue.js"></script>
</head>
<body>
  <!--HTML模板-->
  <div id="demo">
    <span>vue</span>
  </div>
  <script type="x-template" id="temp">
    <div>
      Hello,{{abc}},
      <span>sunday</span>
    </div>
  </script>
  <script>
    //數(shù)據(jù)
    let obj = {
      html:"<div>String</div>",
      abc:1
    };
    var vm = new Vue({
      el:"#demo",
      data:obj,
      template:"#temp"
    });
  </script>
</body>
</html>

實(shí)現(xiàn)效果如下:

寫在script標(biāo)簽中,還是比較局限,

如果別的文件也是這個(gè)結(jié)構(gòu)的時(shí)候,

這個(gè)就不能重復(fù)使用。

模板render函數(shù)

render函數(shù)

  render 選項(xiàng)對(duì)象的屬性

  createElement(標(biāo)簽名,{數(shù)據(jù)對(duì)象},[子元素]);

  子元素為文本或者數(shù)組

我們還是來一段代碼演示

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>render函數(shù)</title>
  <script src="../vue.js"></script>
  <style type="text/css">
    .bg{
      background: #ee0000;
    }
  </style>
</head>
<body>
  <div id="demo"></div>
  <script>
    //數(shù)據(jù)
    let obj = {
    };
    var vm = new Vue({
      el:"#demo",
      data:obj,
      render(createElement){
        return createElement(
          //元素名
          "ul",
          //數(shù)據(jù)對(duì)象
          {
            class:{
              bg:true
            }
           },
          //子元素
          [
            createElement("li",1),
            createElement("li",2),
            createElement("li",3)
          ]
        );
      }
    })
  </script>
</body>
</html>

實(shí)現(xiàn)效果如下

關(guān)于數(shù)據(jù)對(duì)象屬性,講情請(qǐng)參考官網(wǎng)的例子。

Vue.js官網(wǎng)

總結(jié)

以上所述是小編給大家介紹的Vue.js的組件和模板,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 在vue中使用screenfull?依賴,實(shí)現(xiàn)全屏組件方式

    在vue中使用screenfull?依賴,實(shí)現(xiàn)全屏組件方式

    這篇文章主要介紹了在vue中使用screenfull?依賴,實(shí)現(xiàn)全屏組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue?2?如何添加?register-service-worker?實(shí)現(xiàn)緩存請(qǐng)求的問題

    Vue?2?如何添加?register-service-worker?實(shí)現(xiàn)緩存請(qǐng)求的問題

    這篇文章主要介紹了Vue?2?如何添加?register-service-worker?以實(shí)現(xiàn)緩存請(qǐng)求的目的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • vue2中插槽(slot)的基本使用規(guī)范

    vue2中插槽(slot)的基本使用規(guī)范

    插槽(Slot)是Vue提出來的一個(gè)概念,正如名字一樣,插槽用于決定將所攜帶的內(nèi)容,插入到指定的某個(gè)位置,從而使模板分塊,具有模塊化的特質(zhì)和更大的重用性,下面這篇文章主要給大家介紹了關(guān)于vue2中插槽(slot)的基本使用規(guī)范的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 詳解vue-router和vue-cli以及組件之間的傳值

    詳解vue-router和vue-cli以及組件之間的傳值

    這篇文章主要介紹了詳解vue-router和vue-cli以及組件之間的傳值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue3封裝組件完整實(shí)例(帶回調(diào)事件)

    Vue3封裝組件完整實(shí)例(帶回調(diào)事件)

    Vue.js已成為現(xiàn)代Web開發(fā)中不可或缺的技術(shù)之一,雖然Vue.js的一些基礎(chǔ)概念和語法比較易學(xué),但深入挖掘Vue.js的核心概念和功能需要更多的實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于Vue3封裝組件(帶回調(diào)事件)的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • vue2 使用@vue/composition-api依賴包 編譯、打包各種報(bào)錯(cuò)問題分析

    vue2 使用@vue/composition-api依賴包 編譯、打包各種報(bào)錯(cuò)問題分析

    由于package.json 文件中 vue、vue-template-compiler 版本號(hào)前面 多了個(gè) ^ 導(dǎo)致實(shí)際導(dǎo)入時(shí),node_module中的 vue 版本可能被升級(jí)為 2.7.x,這篇文章主要介紹了vue2 使用@vue/composition-api依賴包 編譯、打包各種報(bào)錯(cuò)問題分析,需要的朋友可以參考下
    2023-01-01
  • vue中的正則表達(dá)式校驗(yàn)、驗(yàn)證

    vue中的正則表達(dá)式校驗(yàn)、驗(yàn)證

    這篇文章主要介紹了vue中的正則表達(dá)式校驗(yàn)、驗(yàn)證方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue3+Vite項(xiàng)目使用mockjs隨機(jī)模擬數(shù)據(jù)

    Vue3+Vite項(xiàng)目使用mockjs隨機(jī)模擬數(shù)據(jù)

    這篇文章主要介紹了Vue3+Vite項(xiàng)目使用mockjs隨機(jī)模擬數(shù)據(jù),需要的朋友可以參考下
    2023-01-01
  • 詳解Vue2的diff算法

    詳解Vue2的diff算法

    這篇文章主要介紹了Vue2的diff算法的相關(guān)資料,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • vue.js集成echarts時(shí)遇到的一些問題總結(jié)

    vue.js集成echarts時(shí)遇到的一些問題總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于vue.js集成echarts遇到的一些問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論