【Vue.js學習】生命周期及數據綁定

来源:https://www.cnblogs.com/blackarrow/archive/2018/03/27/8582277.html
-Advertisement-
Play Games

一、生命後期 官網的圖片說明: Vue的生命周期總結 二、數據綁定 1、數據綁定語法 【文本插值】 【HTML屬性】 【綁定表達式】 【過濾器】 【指令】 2、計算屬性(computed) 3、表單控制 【表單控制項】 script部分 需要註意的是sel2val的賦值是int數組,可是在選擇值得時候 ...


一、生命後期

 官網的圖片說明:

Vue的生命周期總結

var app = new Vue({
  el:"#app",            
  beforeCreate: function(){
    console.log('1-beforeCreate 初始化之前');
    //載入loading
  },
  created: function(){
    console.log('2-created 創建完成');
     //關閉loading
   },
   beforeMount: function(){
      console.log('3-beforeMount 掛載之前');
   },
   mounted: function(){
      console.log('4-mounted 被掛載之後');
   },
   beforeUpdate: function(){
      console.log('5-beforeUpdate 數據更新前');
   },
   updated: function(){
      console.log('6-updated 被更新之後');
   },
   activated: function(){
      console.log('7-activated');
   },
   deactivated: function(){
      console.log('8-deactivated');
   },
   beforeDestroy: function(){
      console.log('9-beforeDestroy 被銷毀之前');
   },
   destroyed: function(){
      console.log('10-destroyed 銷毀之後');
   }
});

二、數據綁定

1、數據綁定語法

  【文本插值】

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

//script
var app = new Vue({
    el:"#app",
    data: {
        Name : '小可愛'
    }
});

  【HTML屬性】

<p v-bind:id="pId">永恆的綻放</p>
//縮寫,冒號
<p :id="pId">永恆的綻放</p>

//script
var app = new Vue({
    el:"#app",
    data: {
        Name: "小可愛",
        pId: "wrn"
    }
});

  【綁定表達式】

{{ Num + 2 }}//成功
{{ Num < 5 ? '小於5' : '大於等於5'}}//成功
{{ Name.split('').join('|') }}//成功
{{ var a = 2 }}//失敗
{{ if(Num>2) { return '可怕' } }}//失敗

//script
data: {
    Name: "小可愛",
    pId: "wrn",
    Num: 5
}

  【過濾器】

//一個過濾器
<p>{{ UserName | toUppercase }}</p>
//多個過濾器,將前一個過濾器的值傳給下一個
<p>{{ UserName | toUppercase | addStr }}</p>
//多參數過濾器,預設參數為第一個值
<p>{{ UserName | manyPara('say', 'hello') }}</p>

//script
filters: {  
    toUppercase: function (value) {  
        return value.toUpperCase();  
    },
    addStr: function (value) {  
        return value + " 老可愛了";   
    },
    manyPara: function (p1, p2, p3) {
        return p1+ ' ' + p2 + ' ' + p3;
    }
},

  【指令】

<button v-on:click="test(2, $event)">點擊</button>
//縮寫,@符
<button @click="test(2, $event)">點擊</button>

//script
methods:{
    test: function(a, event){    
        console.log(a);
        console.log(event);
    },
} 

2、計算屬性(computed)

{{ eYa }}
{{ act }}

//script,可以直接當參數使用
computed:{
    eYa: function(){
        return this.Num + 5;
    },
    act: {
        get: function(){
            return this.Num;
        },
        set: function(newVaue){
             this.Num += newVaue;
             console.log(newVaue)
        }
    }
} ,

3、表單控制

  【表單控制項】

<input type="text" v-model="InpVal"/>
<p>input的值:<span>{{ InpVal }}</span></p>
<input type="radio" value="1" v-model="rdoVal"/>
<input type="radio" value="2" v-model="rdoVal"/>
<input type="radio" value="3" v-model="rdoVal"/>
<p>radio的值:<span>{{ rdoVal }}</span></p>
<input type="checkbox" value="stay" v-model="ckb1Val"/>
<p>單選checkbox的值:<span>{{ ckb1Val }}</span></p>
<input type="checkbox" value="stay" v-model="ckb2Val"/>
<input type="checkbox" value="with" v-model="ckb2Val"/>
<input type="checkbox" value="me" v-model="ckb2Val"/>
<p>覆選checkbox的值:<span>{{ ckb2Val }}</span></p>
<select v-model="sel1Val">
    <option value="1">如果有天</option>
    <option value="2">我走了</option>
    <option value="3">你會像馬達那樣</option>
    <option value="4">找我麽</option>
</select>
<p>單選select的值:<span>{{ sel1Val }}</span></p>
<select v-model="sel2Val" multiple>
    <option value="0">會一直找麽</option>
    <option value="1">會一直找到死麽</option>
</select>
<p>覆選select的值:<span>{{ sel2Val }}</span></p>

script部分

var app = new Vue({
    el:"#app",
    data: {
        InpVal : "早已沉入冰冷的谷底",
        rdoVal : 2,
        ckb1Val : true,
        ckb2Val : ["stay", "me"],
        sel1Val : 3,
        sel2Val : [0, 1],
    }
});

  需要註意的是sel2val的賦值是int數組,可是在選擇值得時候,會變成string數組

  【參數特性】

  .lazy,自動將輸入轉化為數值類型;

  .number,自動將輸入轉化為數值類型;

  .trim,自動過濾收尾空白字元;

<input type="text" v-model.lazy="User.Name"/>{{User.Name}}
<input type="text" v-model.number="User.Size"/>{{User.Size}}
<input type="text" v-model.trim="User.Tel"/>{{User.Tel}}

//script
data: {
    User:{
        Name: "老王",
        Size: "18",
        Tel: "110"
    }
}

4、class與style

  【class】

<p :class="{'ClassA': isA, 'ClassB': !isA}">男孩抓緊領口</p>
<p class="ClassA" :class="BClass">有些感覺是說不出口</p>
<p :class="['AClass', 'BClass']">有些煩惱讓人抓破了頭</p>

//頁面
<p class="ClassB">男孩抓緊領口</p>
<p class="ClassA">有些感覺是說不出口</p>
<p class="AClass BClass">有些煩惱讓人抓破了頭</p>

//script
data: {
    isA: false,
    AClass: "ClassA",
    BClassb: "ClassB"
},

  【style】

  註意,border-bottom變數命名為borderBottom

<p :style="StyleInfo">不要哭,這些年都過來了</p>
<p :style="{color: StyleInfo.color}">對不起,盲目的我</p>
<p :style="[StyleInfo, StylePlus]">沒有心,只像閑人</p>

//頁面
<p style="color: red; font-size: 16px;">不要哭,這些年都過來了</p>
<p style="color: red;">對不起,盲目的我</p>
<p style="color: red; font-size: 16px; border-bottom: 1px solid rgb(0, 0, 0);">沒有心,只像閑人</p>

//script
data: {
    StyleInfo:{
        color: "red",
        fontSize: "16px",
    },
    StylePlus:{
        borderBottom: "1px solid #000"
    }
},

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Ps:mongod是mongodb實例,mongos被預設為為mongodb sharding的路由實例。 本文使用的mongodb版本為3.2.9,因此參考網址為:https://docs.mongodb.com/v3.2/sharding/ 此外最後幾個部分還引用了https://yq.aliy ...
  • 最近在做一個圖片上傳,在上傳之前需要對照片進行裁剪,遇到一個坑,在別的手機上運行都正常,在小米手機上卻遇見一個問題,選中圖片無法裁剪,直接閃退,目前已解決!之前出過問題的地方會標紅 //選擇圖片 private void choosePhotos(){ Intent intent = new Int ...
  • 本篇雖然介紹的是消息彈窗,但分享的代碼,都是IT連里完整的功能模塊了。認真掃代碼,就能發現用Sagit框架寫代碼是簡潔的不要不要的了。Sagit框架,讓IOS開發更簡單,你值的擁有!!! ...
  • 在design包裡面 有一個 BottomSheetDialogFragment 這個Fragment,他已經幫我們處理好了手勢,所以實現起來很簡單。下麵是代碼: ...
  • 網上有很多限制textField輸入長度方法,但是我覺得都不是很完美,準確來說可以說是不符合實際開發的要求,因此在這裡整理一下textField限制輸入長度的方法.我所採用的並不是監聽方法而是最不同的代理實現方法,為什麼不使用監聽呢???當你看到這篇文章很有可能視是為一件事所苦惱那就是使用監聽限制輸 ...
  • Android有很多特別的xml文件,如常用的selector、style以及shape,熟練使用這些xml可以是我們的項目變得更個性化。 一、子標簽(corners、gradient、padding、size、solid、stroke) 1、padding和size 這兩個可以選擇不用,因為它們的 ...
  • 冒泡排序:時間複雜度為O(n^2) 比較任意兩個相鄰的項,如果第一個比第二個大,則交換它們,元素向上移動至正確的順序,就好像氣泡升至錶面上一樣。 冒泡排序是排序演算法中最簡單的,然而,從運行事件的角度來看,冒泡排序是最差的一個, 首先我們來講解一下思路吧: ...
  • Vue.js在設計上使用MVVM模式。通過MVVM的模式拆分為視圖和數據兩部分,並將其分離。因此,你只需關心數據即可,DOM的事情Vue會幫你自動搞定。 Vue的生命周期鉤子比較常用的有: created 實例創建完成之後釣魚,此階段完成了數據的觀測等,但尚未掛載,$el還不可用。在需要初始化處理一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...