<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 1. 選項/組合 ### 1.1 mixins 可以在混入中添加組件的額外事件(組件內事件,但不適合放在methods),此外可以使用混入來寫jsx語法,jsx內鉤子函數會優先于組件內鉤子函數觸發。 ## 2. 實例選項/數據 ### 2.1 props `default` 設置初始值,如果傳入屬性的類型為Array或者Object,則必須使用函數來返回初始值 ~~~ props: { type: Array, default: function() { return [0, 1, 2] } } ~~~ ### 2.2 computed > 計算屬性,多用于處理插值表達式,返回處理結果。 ~~~ <div> ?<!-- 使用時將它視為一個屬性值而不是在調用一個方法 --> {{ fullName }} </div> ? computed: { fullName: function() { return '' } } ~~~ ### 2.3 watch 監聽一個對象的所有屬性更改: ~~~ obj: { ?handler(newVal) { ? ?console.error('newVal', newVal) }, ?deep: true } ~~~ 監聽對象下具體的屬性: ~~~ 'obj.name': { ?handler(newVal, oldVal) { ? ?console.error('newVal', newVal) ? ?console.error('oldVal', oldVal) }, deep: true, ?immediate: true // 是否立即執行handler } ~~~ 監聽事件: > 通過設置 `immediate` 屬性為 `true` 在初始渲染時觸發 `handler` 監聽事件 ~~~ handleChange: { handler(handleChange) { ? console.error('handleChange', handleChange) ? handleChange() // 此時是可以執行的 }, immediate: true } ~~~ ## 3. 實例屬性 ### 3.1 vm.$attrs > 只讀屬性,`$attrs` 會獲取直接父組件傳遞過來的未在props中聲明的屬性,通過 `v-bind="$attrs"` 傳入內部組件,內部組件中 `$attrs` 亦會獲取未在props中聲明的屬性 應用場景: 需要將屬性值傳入內部組件 > tips: 內部組件若想獲取與其直接父組件有相同的屬性時,直接父組件可以通過 `$attrs.` 使用屬性 ~~~ <div> ?<Child :name="name" :age="age"/> </div> ? components: { Child } ~~~ ~~~ <div> ?<p>$attrs: {{ $attrs }}</p> ?<p>name by props: {{ name }}</p> ?<p>age: {{ $attrs.age }}</p> ?<Grandson v-bind="$attrs" /> </div> ? export default { name: 'Child', props: { name: { type: String } }, components: { Grandson } } ~~~ > 內部組件 `$attrs` 獲取到的是其父組件中通過 `$attrs` 可獲取的屬性 ~~~ <div> ?<p>$attrs: {{ $attrs }}</p> ?<p>age: {{ $attrs.age }}</p> </div> ~~~ ### 3.2 vm.$listeners > this.$listeners可以獲取由父組件傳遞的所有未含 `.native` 修飾器的事件,通過 `v-on="$listeners"` 傳入內部組件,內部組件亦可以獲取這些事件 應用場景: 內部組件想要傳遞屬性值給外部組件 ~~~ <div> ?<Child :handleNameEve="handleNameEve" @handleAgeEve="handleAgeEve" /> </div> ? components: { Child }, methods: { handleNameEve(name) { console.log(`i'm ${name}`) }, handleAgeEve(age) { console.log(`i'm ${age}`) } } ~~~ ~~~ <div> ? ?<Grandson v-on="$listeners" /> </div> ? export default { name: 'Child', props: { handleNameEve: { type: Function } }, mounted() { ? this.handleNameEve('pikaqiu') ? this.$listeners.handleAgeEve(22) ? this.$emit('handleAgeEve', 18) }, components: { Grandson } } ~~~ ~~~ <div> i'm Grandson </div> ? mounted() { this.$listeners.handleAgeEve(20) this.$emit('handleAgeEve', 19) } ~~~ ## 4. 實例方法/數據 ### 4.1 $set > 向響應式對象(該對象不能是vm.$data)添加新的響應式屬性,并從觸發視圖更新 ## 5. 實例方法/生命周期 ### 5.1 $nextTick > 該函數會在異步刷新dom后執行 應用場景: 等待數據加載loading動畫 ~~~ data() { return { loading: false } }, methods: { async handleLoadingStatus() { ? this.loading = true ? await this.$nextTick() ? this.loading = false } } ~~~ ## 6. 內置組件 ### 6.1 transition > 使用 `transition` 包裹元素標簽,給 `transition` 添加 `name` 屬性后自動生成 CSS 過渡類名(也支持自定義過渡類名),不額外產生dom。被包裹元素標簽相同時,需要給定 `key` ,否則動畫失效 ### 6.2 transition-group > tag屬性指定被包裹元素標簽的父元素標簽,默認為span。用于同時渲染整個列表 ### 6.3 keep-alive > 多用于包裹路由,tab切換之類的動態組件, 使用 `include` 和 `exclude` 屬性可以指定那些組件被緩存或不被緩存(vue 2.1以上可用), 指定內容與 **組件名** 相關。此外可用 `max` 指定可緩存的組件數量上限(vue 2.5以上可用) 包裹動態組件 ~~~ <div> ?<keep-alive include='ibook'> <component :is="currentTabComponent"></component> </keep-alive> </div> ~~~ 包裹路由 > 結合配置 `route` 的 `meta` 屬性一起使用實現緩存 ~~~ <keep-alive> <router-view v-if="this.$route.meta.alive" /> </keep-alive> <router-view v-if="!this.$route.meta.alive" /> ~~~ ~~~ export default [{ path: '/', name: 'home', meta: { alive: false, title: 首頁' }, component: Home }, { path: '/ibook', name: 'ibook', meta: { alive: true, title: '書籍' }, component: Ibook }] ~~~ >[success] 優點:可緩存組件實例(包括 **state** )提升系統流暢度;可選擇性緩存想要緩存的組件(2.1以后支持);可配置緩存上限(2.5以后支持) >[warning] 缺點: 緩存組件實例代表著更多的 **系統內存** 被使用,對于刷新頻率高的組件可以考慮使用,但應該控制組件緩存數量上限(應與組件內容有關)
                  <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>

                              哎呀哎呀视频在线观看