目錄
一、使用Prop傳遞資料
二、camelCase vs.kebab-case
三、動態Prop
四、字面量語法vs動態語法
五、單項數據流
1.prop作為初始值傳入,子元件之後只是將它的初始值作為本地資料的初始值使用;
2.prop作為需要被轉變的原始值傳入。
六、Prop驗證
首頁 web前端 Vue.js vuejs中prop什麼意思

vuejs中prop什麼意思

Sep 18, 2021 pm 06:27 PM
prop vuejs

在vuejs中,prop是父元件用來傳遞資料的自訂屬性。子元件需要顯示的地用props選項宣告「prop」;當使用非字串模板時,prop的名字形式會從camelCase轉為kebab-case(短橫線隔開)。

vuejs中prop什麼意思

本教學操作環境:windows7系統、vue2.9.6版,DELL G3電腦。

一、使用Prop傳遞資料

元件實例的作用域是孤立的。這意味著不能並且不應該在子組件的模板內直接引用父組件的資料。可以使用props把資料傳給子元件。
prop是父元件用來傳遞資料的一個自訂屬性。子元件需要顯示的地用props選項宣告「prop」

Vue.component('child',{
    props:['message'],
    template:&#39;<span>{{ message }}</span>&#39;
})
登入後複製

然後向它傳入一個普通字串:

<child message="hello!"></child>
登入後複製

結果:

hello!
登入後複製

二、camelCase vs.kebab-case

html不區分大小寫。當使用非字串模板時,prop的名字形式會從camelCase轉為kebab-case(短橫線隔開):

//camelCase
Vue.component(&#39;child&#39;,{
    props:[&#39;myMessage&#39;],
    template:&#39;<span>{{ message }}</span>&#39;
})
登入後複製
//kebab-case
<child my-message="hello!"></child>
登入後複製

再次說明,如果你是用字串模板,不用在意這些限制。

三、動態Prop

類似於用v-bind綁定HTML特性到一個表達式,也可以用v -bind動態綁定props的值到父元件的資料中。每當父組件的資料變更時,該變更也會傳導給子元件。

<div>
    <input v-model="parrentMsg">
    <br>
    <child v-bind:my-message="parrentMsg"></child>
</div>
登入後複製

使用v-bind的縮寫語法通常更簡單:

<child :my-message="parrentMsg"></child>
登入後複製

四、字面量語法vs動態語法

#因為它是一個字面prop ,它的值以字串"1" 而不是以實際的數字傳下去。如果想要傳遞一個實際的JavaScript 數字,則需要使用v-bind ,從而讓它的值被當作JavaScript 表達式計算:

五、單項數據流

prop是單項綁定的:當父元件的屬性變化時,將傳導給子元件,但是不會反過來。這是為了防止子元件無意修改了父元件的狀態——這會讓應用程式的資料流難以理解。同時,這也很好理解,父組件是子組件的高度抽象,表示子組件的共有部分,一個組件的資料改變並不會改變其抽象,然而其抽象的改變卻代表著所有子組件的改變。
另外,每次群組漸漸更新時,子元件的所有prop都會更新為最新值。這意味著你不應該在子元件內部改變prop。如果你這麼做了,Vue會在控制台給予警告。
通常有兩種改變prop的情況:

1.prop作為初始值傳入,子元件之後只是將它的初始值作為本地資料的初始值使用;

2.prop作為需要被轉變的原始值傳入。

更確切地說這兩種情況是:
a. 定義一個局部data屬性,並將prop的初始值作為局部資料的初始值。

props: [‘initialCounter’], 
 data: function () { 
 return { counter: this.initialCounter} 
 }
登入後複製
    b.定义一个 computed 属性,此属性从 prop 的值计算得出。
   ```
    props: [&#39;size&#39;],
    computed: {
        normalizedSize: function () {
         return this.size.trim().toLowerCase()
     }
    }
登入後複製

六、Prop驗證

元件可以為 props 指定驗證要求。如果未指定驗證要求,Vue 會發出警告。當組件給其他人使用時這很有用。
prop 是一個物件而不是字串陣列時,它包含驗證需求:

Vue.component(&#39;example&#39;, {
  props: {
    // 基础类型检测 (`null` 意思是任何类型都可以)
    propA: Number,
    // 多种类型
    propB: [String, Number],
    // 必传且是字符串
    propC: {
      type: String,
      required: true
    },
    // 数字,有默认值
    propD: {
      type: Number,
      default: 100
    },
    // 数组/对象的默认值应当由一个工厂函数返回
    propE: {
      type: Object,
      default: function () {
        return { message: &#39;hello&#39; }
      }
    },
    // 自定义验证函数
    propF: {
      validator: function (value) {
        return value > 10
      }
    }
  }
})
登入後複製

type可以是下面的原生建構器: 

* String 

* Number 

* Boolean 

* Function 

* Object 

* Array

#type也可以是一個自訂建構器,使用instanceof檢測。當prop驗證失敗了,如果使用的是開發版本會拋出警告。

相關推薦:《vue.js教學

以上是vuejs中prop什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用Vue.js和Kotlin語言開發安卓應用程式的一些技巧 使用Vue.js和Kotlin語言開發安卓應用程式的一些技巧 Jul 31, 2023 pm 02:17 PM

使用Vue.js和Kotlin語言開發安卓應用程式的一些技巧隨著行動應用的普及和用戶需求的不斷增長,安卓應用的開發越來越受到開發者的關注。在開發安卓應用程式時,選擇合適的技術堆疊至關重要。近年來,Vue.js和Kotlin語言逐漸成為安卓應用程式開發的熱門選擇。本文將介紹使用Vue.js和Kotlin語言開發安卓應用程式的一些技巧,並給出對應的程式碼範例。一、搭建開發環境在開始

如何解決'[Vue warn]: Missing required prop”錯誤 如何解決'[Vue warn]: Missing required prop”錯誤 Aug 26, 2023 pm 06:57 PM

如何解決「[Vuewarn]:Missingrequiredprop」錯誤在開發Vue應用程式時,有時會遇到一個常見的錯誤訊息:「[Vuewarn]:Missingrequiredprop」。這個錯誤通常指的是元件中缺少必需的屬性值,導致元件無法正常渲染。解決這個問題的方法很簡單,我們可以透過一些技巧和規範來避免和處理這個錯誤。以下是一些解

使用Vue.js和Python開發資料視覺化應用的一些技巧 使用Vue.js和Python開發資料視覺化應用的一些技巧 Jul 31, 2023 pm 07:53 PM

使用Vue.js和Python開發資料視覺化應用的一些技巧引言:隨著大數據時代的到來,資料視覺化成為了一個重要的解決方案。而在資料視覺化應用的開發中,Vue.js和Python的組合能夠提供靈活性和強大的功能。本文將分享一些使用Vue.js和Python開發資料視覺化應用的技巧,並附上對應的程式碼範例。一、Vue.js簡介Vue.js是一款輕量級的JavaSc

Vue.js與Lua語言的融合,建構遊戲開發的前端引擎的最佳實踐和經驗分享 Vue.js與Lua語言的融合,建構遊戲開發的前端引擎的最佳實踐和經驗分享 Aug 01, 2023 pm 08:14 PM

Vue.js與Lua語言的融合,建構遊戲開發的前端引擎的最佳實踐和經驗分享引言:隨著遊戲開發的不斷發展,遊戲前端引擎的選擇成為了一個重要的決策。在這些選擇中,Vue.js框架和Lua語言都成為了眾多開發者的關注點。 Vue.js作為一款受歡迎的前端框架具有豐富的生態系統和便捷的開發方式,而Lua語言則因其輕量級和高效性能在遊戲開發中得到廣泛應用。本文將探討如何將

如何使用PHP和Vue.js實現圖表上的資料篩選和排序功能 如何使用PHP和Vue.js實現圖表上的資料篩選和排序功能 Aug 27, 2023 am 11:51 AM

如何使用PHP和Vue.js實現圖表上的資料篩選和排序功能在網頁開發中,圖表是一種非常常見的資料展示方式。使用PHP和Vue.js可以輕鬆實現圖表上的資料篩選和排序功能,使用戶能夠自訂查看圖表上的數據,提高資料的視覺化效果和使用者體驗。首先,我們需要準備一組資料供圖表使用。假設我們有一個資料表格,包含姓名、年齡和成績三列,資料如下:姓名年齡成績張三1890李

如何使用Vue實現仿QQ聊天氣泡特效 如何使用Vue實現仿QQ聊天氣泡特效 Sep 20, 2023 pm 02:27 PM

如何使用Vue實現仿QQ聊天氣泡特效在現今的社交時代,聊天功能已成為了手機應用程式和網頁應用程式的核心功能之一。而聊天介面中最常見的元素之一就是聊天氣泡,它可以清楚地將發送者和接收者的訊息區分開來,有效地提高了訊息的可讀性。本文將介紹如何使用Vue實現仿QQ聊天氣泡特效,以及提供具體的程式碼範例。首先,我們需要建立一個Vue元件來表示聊天氣泡。組件包含兩個主要部分

使用Vue.js和Perl語言開發高效的網路爬蟲和資料抓取工具 使用Vue.js和Perl語言開發高效的網路爬蟲和資料抓取工具 Jul 31, 2023 pm 06:43 PM

使用Vue.js和Perl語言開發高效的網路爬蟲和資料抓取工具近年來,隨著網路的快速發展和資料的日益重要,網路爬蟲和資料抓取工具的需求也越來越大。在這個背景下,結合Vue.js和Perl語言開發高效率的網路爬蟲和資料抓取工具是個不錯的選擇。本文將介紹如何使用Vue.js和Perl語言開發這樣一個工具,並附上對應的程式碼範例。一、Vue.js和Perl語言的介

Vue.js與Dart語言的集成,建構酷炫的行動應用UI介面的實踐與開發技巧 Vue.js與Dart語言的集成,建構酷炫的行動應用UI介面的實踐與開發技巧 Aug 02, 2023 pm 03:33 PM

Vue.js與Dart語言的集成,建構酷炫的行動應用UI介面的實踐與開發技巧引言:在行動應用開發中,使用者介面(UI)的設計與實作是非常重要的一部分。為了能夠實現酷炫的行動應用程式介面,我們可以將Vue.js與Dart語言進行集成,借助Vue.js的強大資料綁定和組件化特性,以及Dart語言的豐富的行動應用開發庫,來構建出令人驚豔的行動應用UI介面。本文將介紹如何

See all articles