vue開發體驗

来源:http://www.cnblogs.com/Baiang/archive/2016/03/21/5302963.html
-Advertisement-
Play Games

記錄下vue開發過程中的一些理解,如有不足,希望大家多多提意見。 vue裡面的數據綁定,是一種常見的元素操作,如v-bind:src,v-bind:class,v-bind:style等等。 這是個官網的例子,再舉一個常見的。我們一般對網頁圖片優化,需要考慮對圖片懶載入(延遲載入)會寫如下代碼: 1


vue開發體驗

記錄下vue開發過程中的一些理解,如有不足,希望大家多多提意見。

v-bind屬性綁定

vue裡面的數據綁定,是一種常見的元素操作,如v-bind:src,v-bind:class,v-bind:style等等。

//html代碼
<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }"></div>

//js代碼
data: {
    isA: true,
    isB: false
}

渲染為
<div class="static class-a"></div>

這是個官網的例子,再舉一個常見的。我們一般對網頁圖片優化,需要考慮對圖片懶載入(延遲載入)會寫如下代碼:

<img data-original="images/1.jpg" src="/js/grey.gif" />

1.jpg為需要載入的圖片,grey.gif為載入前等待圖片(圖片高度只有1px),再引入js代碼,進行控制修改,繁瑣又不夠靈活。而vue解決了這個問題。

<img v-bind:src="imgUrl"> 

ajax請求數據圖片鏈接地址,寫入data,監測到imgUrl變化,自動更新視圖。後期可以根據具體的需求,做出相應的擴展。

組件開發

Vue是專門view數據渲染的MVVM框架,其中最核心的是組件開發。組件註冊後便可以用在父實例的模塊中,以自定義元素的形式使用要確保在初始化根實例之註冊了組件。這是官網的描述,重點是先註冊組件,再初始化根實例Vue,否則組件註冊失敗。

全局組件註冊

//html代碼
<my-component></my-component>

//js代碼
Vue.component('my-component', {
    template: '<div>A custom component! <my-c1></my-c1></div>'
})

局部組件註冊

局部註冊組件,只能使用在父組件模板內

//html代碼
<div id="Parent"></div>

//js代碼
var Parent = Vue.extend({
    template: '<div>I\'m Parent, My children: <my-c1></my-c1></div>',
    components: {
          //只能用在父組件模板
          'my-c1':{
                template: '<div>A custom component!</div>'
           }
     }
 })

//組件實例化
 new Parent({
        el: '#Parent'
 })

在組件命名上出現大寫,如<my-c1Name></my-c1Name>,組件是註冊失敗。

組件通訊

組件實例的作用域是孤立的。這意味著不能並且不應該在子組件的模板內直接引用父組件的數據。

props

“prop”是組件數據的一個欄位,期望從父組件傳下來

//html代碼
<child msg="hello!"></child>

//js代碼
 Vue.component('child', {
      // 聲明 props
      props: ['msg'],
      // prop 可以用在模板內
      // 可以用 `this.msg` 設置
      template: '<span>{{ msg }}</span>'
  })

//渲染為
<span>hello!</span>

動態 Props

與v-bind屬性綁定結合使用

//html代碼
<child :msg="hello!"></child>

//js代碼
Vue.component('child', {
      // 聲明 props
      props: ['msg'],
      // prop 可以用在模板內
      // 可以用 `this.msg` 設置
      template: '<span>{{ msg.a }}</span>'
    })
new Vue({
    el: '#app',
    data:{
        msgs: {
            a: 1
        }
    }
})

與v-mode結合v-bind結合一起使用

//html代碼
<input v-model="parentMsg">
  <br>
<child :message="parentMsg"></child>

//js代碼
Vue.component('child', {
  // 聲明 props
  props: ['message'],
  // prop 可以用在模板內
  // 可以用 `this.msg` 設置
  template: '<span>{{ message }}</span>'
})

new Vue({
    el: '#app',
    data:{
        parentMsg: 'Message from parent'
    }
})

參考文檔

 


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

-Advertisement-
Play Games
更多相關文章
  • 創建型模式 單例模式:確保一個類只有一個實例,而且自行實例化並向整個系統提供這個實現。 工廠模式:定義一個用於創建對象的介面,讓子類決定將哪一個類實例化。工廠方法使一個類的實例化延遲到子類。 抽象工廠模式:提供一個創建一系列相關或相互依賴對象的介面,而無需指定它們具體的類。 建造者模式:將一個複雜對
  • 這幾天剛掌握的內部插入,做了個簡易的選課系統分享下 <body> <h1>系統選課</h1> <div id="da"> <div id="div1"> 可選課程 </div> <div id="div2"> </div> <div id="div3"> 已選課程 </div> </div> <di
  • 一、類選擇器:"."類選擇器{css樣式代碼} 1、使用合適標簽吧要修飾的內容標記下來。 <span>內容</span> 2、<span class=“stress”>內容</span> 3、.stress{color:red} 註意:英文圓點開頭,類選擇器可任意名稱但不要中文。 二、ID選擇器 1
  • 筆者是前端小白一枚,在往前端頁面重構方向學習成長中,今天花了一天時間學習相關的文章 在這裡集合一些關於重構基礎概念和成長建議,希望能對想瞭解和學習頁面重構的同學有所幫助 文章中提到的相關文章均說明鏈接地址,利於說明文章來源,也方便讀者深入探討 抱著學習的態度看這些文章,我也希望能夠在文章中加入自己學
  • <!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <title>ajax()</title> <script src="js/jquery-1.6.js"></script> <script> $(function(){ $(
  • // 重新定位所有消息提示層(當使用dipslay顯示隱藏某些HTML層時,由於消息是絕對定位的,所以會出現消息層錯位現象) //在最後調用此方法重新定位即可 function resetPos(){ var objs = document.getElementsByTagName('*'); va
  • 使用方法: 粘貼代碼到文本文檔中,文檔名稱為datetime.js,然後在html文件中引用如下代碼即可 <input name="shijian1" id="shijian1" type="text" class="sang_Calender" /> <script type="text/java
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...