<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一:Prop大小寫 ``` Vue.component('blog-post', { // 在 JavaScript 中是 camelCase 的 props: ['postTitle'], template: '<h3>{{ postTitle }}</h3>' }) ``` 注冊組件時props是postTitle,但在組件中使用時是post-title ``` <!-- 在 HTML 中是 kebab-case 的 --> <blog-post post-title="hello!"></blog-post> ``` ## 二:Prop的類型 1.數組 ``` props: ['title', 'likes', 'isPublished', 'commentIds', 'author'] ``` 2.對象 >[info] 當props使用對象的形式時可以使用類型檢查,這也是推薦使用的方式 ``` props: { title: String, likes: Number, isPublished: Boolean, commentIds: Array, author: Object, callback: Function, contactsPromise: Promise // or any other constructor } ``` ## 三:單向數據流 所有的prop都是父組件流向子組件,而反過來則不行,這樣會防止從子組件意外改變父級組件的狀態,從而導致你的應用的數據流向難以理解。 這里有兩種常見的試圖改變一個 prop 的情形: 1.**這個 prop 用來傳遞一個初始值;這個子組件接下來希望將其作為一個本地的 prop 數據來使用**。在這種情況下,最好定義一個本地的 data 屬性并將這個 prop 用作其初始值: ``` props: ['initialCounter'], data: function () { return { counter: this.initialCounter } } ``` 2.**這個 prop 以一種原始的值傳入且需要進行轉換**。在這種情況下,最好使用這個 prop 的值來定義一個計算屬性: ``` props: ['size'], computed: { normalizedSize: function () { return this.size.trim().toLowerCase() } } ``` >[danger] 注意在 JavaScript 中對象和數組是通過引用傳入的,所以對于一個數組或對象類型的 prop 來說,在子組件中改變這個對象或數組本身**將會**影響到父組件的狀態。 ## 四:非Prop的特征 **非 prop 特性是指傳向一個組件,但是該組件并沒有定義相對應的prop。** ``` Vue.component('bootstrap-date-input',{ template:`<input type="date" class="form-control">` }) //組件并沒有定義data-date-picker的porp,此時會把data-date-picker添加到組件的根元素中 <bootstrap-date-input data-date-picker="activated"></bootstrap-date-input> ``` ``` <input type="date" data-date-picker="activated" class="form-control"> ``` **默認會把特征繼承作用于組件根元素,但往往我們需要靈活設置作用的元素。** 1.禁用特征繼承 禁用根組件的特征繼承需要在組件的選項中設置`inheritAttrs: false`,這樣就不會默認作用于跟組件 ``` Vue.component('bootstrap-date-input',{ inheritAttrs: false, template:`<label> {{ label }} <input v-bind="$attrs" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" > </label>` }) ``` 2.設置特征繼承作用的元素 在需要設置的元素上使用`$attrs`屬性即可作用到設置的元素中。 ``` Vue.component('base-input', { inheritAttrs: false, props: ['label', 'value'], template: ` <label> {{ label }} <input v-bind="$attrs" //設置$attrs,則特征會作用于input元素 v-bind:value="value" v-on:input="$emit('input', $event.target.value)" > </label> ` }) ``` >[danger] 注意`inheritAttrs: false`選項**不會**影響`style`和`class`的綁定。 這個模式允許你在使用基礎組件的時候更像是使用原始的 HTML 元素,而不會擔心哪個元素是真正的根元素: ~~~ <base-input v-model="username" required placeholder="Enter your username" ></base-input> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看