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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...