欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue組件Prop傳遞數(shù)據(jù)的實現(xiàn)示例

 更新時間:2017年08月17日 10:11:50   作者:街角小七  
本篇文章主要介紹了vue組件Prop傳遞數(shù)據(jù)的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

組件實例的作用域是孤立的。這意味著不能(也不應(yīng)該)在子組件的模板內(nèi)直接引用父組件的數(shù)據(jù)。要讓子組件使用父組件的數(shù)據(jù),我們需要通過子組件的props選項。

prop 是單向綁定的:當父組件的屬性變化時,將傳導(dǎo)給子組件,但是不會反過來。這是為了防止子組件無意修改了父組件的狀態(tài)。

每次父組件更新時,子組件的所有 prop 都會更新為最新值。這意味著你不應(yīng)該在子組件內(nèi)部改變 prop。

1、Prop靜態(tài)傳遞數(shù)據(jù)

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript" src="vue.js"></script>

</head>
<body >
<div id="app">
  <!--靜態(tài)傳遞數(shù)據(jù)-->
   <my-component message="hello" name="劉二狗" age="18"></my-component>
</div>
</body>

<script>
  Vue.component('my-component',{
    //子組件使用父組件的數(shù)據(jù) message name age
    props:['message','name','age'],
    //用data選項對數(shù)據(jù)進行處理
    data:function(){
     return{
       message1: this.message +'用data選項對數(shù)據(jù)進行處理'
     }
    },
    //用計算屬性選項對數(shù)據(jù)進行處理
    computed:{
      message2:function(){
        return this.message + '用計算屬性選項對數(shù)據(jù)進行處理'
      }
    },
    template:'<div>' +
          '<span>{{message1}}</span><br>'+
          '<span>{{message2}}</span><br>'+
          '<span>{{message}} {{name}}今年{{age}}了</span><br>'+
         '</div>'
  })
  new Vue({
    el:'#app'
  })
</script>
</html>

輸出結(jié)果:

2、Prop動態(tài)傳遞數(shù)據(jù)

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript" src="vue.js"></script>
</head>
<body >
<div id="app">
    <input v-model="parentMsg"><br>
    <my-component :message="parentMsg"></my-component>
</div>
</body>

  <script>
    Vue.component('my-component',{
      props:['message'],
      data:function(){
        return{count:this.message+'劉三狗的嫉妒了'}
      },
      computed:{
        normalizedSize: function () {
          return this.message.trim().toLowerCase()
        }
      },
      template:'<div>' +
            '<span>{{message}}---{{normalizedSize}}</span><br>'+
            '<span>{{count}}</span>'+
           '</div>'
    })

    new Vue({
      el:'#app',
      data:{
        parentMsg:'哈哈哈'
      }
    })
</script>
</html>


輸出結(jié)果:

 3、Prop驗證,我們可以為組件的 props 指定驗證規(guī)格。如果傳入的數(shù)據(jù)不符合規(guī)格,Vue 會發(fā)出警告。在前臺的控制器中可以看到警告信息。

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript" src="vue.js"></script>
</head>
<body>
  <div id="app">
    <example :prop-d="message"></example>
  </div>
</body>

<script>
  Vue.component('example', {
    props: {
      // 基礎(chǔ)類型檢測 (`null` 意思是任何類型都可以)
      propA: Number,
      // 多種類型
      propB: [String, Number],
      // 必傳且是字符串
      propC: {
        type: String,
        required: true
      },
      // 數(shù)字,有默認值
      propD: {
        type: Number,
        default: 100
      },
      // 數(shù)組/對象的默認值應(yīng)當由一個工廠函數(shù)返回
      propE: {
        type: Object,
        default: function () {
          return { message: 'hello' }
        }
      },
      // 自定義驗證函數(shù)
      propF: {
        validator: function (value) {
          return value > 10
        }
      }
    },
    template:'<span>{{propD}}</span>'
  })

  new Vue({
    el:'#app',
    data:{
      message:'propD驗證只能傳入數(shù)字類型'
    }
  })
</script>
</html>

控制臺輸出的警告信息:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 老生常談Vue中的偵聽器watch

    老生常談Vue中的偵聽器watch

    開發(fā)中我們在data返回的對象中定義了數(shù)據(jù),這個數(shù)據(jù)通過插值語法等方式綁定到template中,這篇文章主要介紹了Vue中的偵聽器watch,需要的朋友可以參考下
    2022-10-10
  • vue3 el-pagination 將組件中英文‘goto’ 修改 為 中文到‘第幾’

    vue3 el-pagination 將組件中英文‘goto’ 修改 為&nbs

    這篇文章主要介紹了vue3 el-pagination 將組件中英文‘goto’ 修改 為 中文到‘第幾’,通過實例代碼介紹了vue3項目之Pagination 組件,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • vue中PC端使用高德地圖實現(xiàn)搜索定位、地址標記、彈窗顯示定位詳情(完整實例)

    vue中PC端使用高德地圖實現(xiàn)搜索定位、地址標記、彈窗顯示定位詳情(完整實例)

    這篇文章主要介紹了vue中PC端使用高德地圖實現(xiàn)搜索定位、地址標記、彈窗顯示定位詳情,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • vue中報錯“error‘xxx‘?is?defined?but?never?used”問題及解決

    vue中報錯“error‘xxx‘?is?defined?but?never?used”問題及解決

    介紹了兩種解決代碼導(dǎo)入問題的方法:單一代碼解決和全局解決,第一種方法是在代碼前面添加特定代碼并保存;第二種方法是在package.json中添加代碼后重啟項目,這些方法可以有效解決導(dǎo)包錯誤提示,希望對大家有幫助
    2024-10-10
  • VueX模塊的具體使用(小白教程)

    VueX模塊的具體使用(小白教程)

    這篇文章主要介紹了VueX模塊的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-06-06
  • vue移動端使用canvas簽名的實現(xiàn)

    vue移動端使用canvas簽名的實現(xiàn)

    這篇文章主要介紹了vue移動端使用canvas簽名的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-01-01
  • Vue的Class與Style綁定的方法

    Vue的Class與Style綁定的方法

    本篇文章主要介紹了Vue的Class與Style綁定的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue+高德地圖寫地圖選址組件的方法

    vue+高德地圖寫地圖選址組件的方法

    這篇文章主要介紹了vue+高德地圖寫地圖選址組件的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-05-05
  • vue.js input框之間賦值方法

    vue.js input框之間賦值方法

    今天小編就為大家分享一篇vue.js input框之間賦值方法具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 詳解mpvue開發(fā)小程序小總結(jié)

    詳解mpvue開發(fā)小程序小總結(jié)

    這篇文章主要介紹了詳解mpvue開發(fā)小程序小總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07

最新評論