最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue2.X組件學(xué)習(xí)心得(新手必看篇)

 更新時間:2017年07月05日 08:40:49   投稿:jingxian  
下面小編就為大家?guī)硪黄獀ue2.X組件學(xué)習(xí)心得(新手必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

VUEJS學(xué)習(xí)網(wǎng)址:https://cn.vuejs.org/

此文章是用來記錄自己的學(xué)習(xí)和實(shí)踐心得。

關(guān)注點(diǎn):父子組件之間的通信

看圖說話:

Pass Props

子組件本身與父組件是孤立的,通過子組件中顯示聲明的props屬性,接收父組件數(shù)據(jù);

父組件的數(shù)據(jù)更新時,子組件的prop會跟著更新;

此數(shù)據(jù)流動是單向的(看著);

Emit Events

子組件使用$.emit(fn)向外拋出自己的內(nèi)部觸發(fā)的事件;

父組件是否監(jiān)聽?如果父組件需要監(jiān)聽,使用v-on綁定監(jiān)聽,觸發(fā)對應(yīng)事件;

以上為通用語,具體分析

子組件可以接收一個字符串,在子組件內(nèi)部可以用{{label}}使用 

<v-input label="姓名"></v-input>

子組件可以接收動態(tài)參數(shù)

<input v-model="msg" />
<v-profile :message="msg"></v-profile>

子組件接收到數(shù)據(jù)之后想處理一下不小心改了怎么辦?

給prop創(chuàng)建一個副本(建議深拷貝),處理副本,不動prop;

父組件的數(shù)據(jù)改變后,子組件的prop會自動更新,但是這個prop的副本不會???

使用watch監(jiān)聽這個prop,改變時更新副本;

子組件的prop副本改變了想要通知父組件怎么辦?

使用watch監(jiān)聽這個副本,改變時向外拋出自己的內(nèi)部觸發(fā)的事件;
。。。

其實(shí)以上???在2.3有了更好的方法,之前的就是看看。

.sync修飾符

***父組件***
<input v-model="msg" />
<v-profile :message.sync="msg"></v-profile>
***子組件***
$.emit('update:message',newValue)

我是用了一下然后喜聞樂見的修改成功了,但是打開控制臺有報錯?。?!

vue.esm.js?65d7:434 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "message"

子組件想要觸發(fā)父組件可以emit(父組件需要監(jiān)聽才會觸發(fā)),父組件觸發(fā)子組件事件呢?

通過在引用的子組件上使用ref屬性實(shí)現(xiàn)父組件調(diào)用子組件的方法以及屬性

但是!$refs 只在組件渲染完成后才填充,并且它是非響應(yīng)式的。它僅僅作為一個直接訪問子組件的應(yīng)急方案——應(yīng)當(dāng)避免在模版或計算屬性中使用 $refs 。

關(guān)注點(diǎn):非父子組件之間的通信

使用空的vue實(shí)例作為中央事件總線

var bus = new Vue();
// 觸發(fā)組件 A 中的事件
bus.$emit('id-selected', 1)


// 在組件 B 創(chuàng)建的鉤子中監(jiān)聽事件
bus.$on('id-selected', function (id) {
 // ...
})

考慮vuex

關(guān)注點(diǎn):在組件中使用slot

首先,在父組件中給子組件標(biāo)簽中間放置內(nèi)容是無效的。然后slot出場。

白話版本:

匿名slot:
  slot標(biāo)簽存在與子組件template中;
  子組件在父組件中使用的時候,子組件標(biāo)簽中的結(jié)構(gòu)會在編譯后替換子組件的slot標(biāo)簽;
  如果子組件中沒有slot,則父組件中子組件標(biāo)簽中的內(nèi)容會消失;
具名slot:
  顧名思義,是具有name屬性的slot標(biāo)簽;并有匿名組件的特性(以上);
  子組件在父組件中使用的時候,子組件中的結(jié)構(gòu)中會有某些標(biāo)簽擁有slot屬性并賦值,這些會在編譯后替換子組件的相應(yīng)slot標(biāo)簽;

一句話解釋:主要的內(nèi)容是寫在父組件中的子組件標(biāo)簽中,編譯后插入子組件的相應(yīng)位置

講真,說到這里我自己都不明白要slot干嘛。

官方講解入口

官方給了個布局的例子:

<div class="container">
 <header>
  <slot name="header"></slot>
 </header>
 <main>
  <slot></slot>
 </main>
 <footer>
  <slot name="footer"></slot>
 </footer>
</div>
<app-layout>
 <h1 slot="header">這里可能是一個頁面標(biāo)題</h1>
 <p>主要內(nèi)容的一個段落。</p>
 <p>另一個主要段落。</p>
 <p slot="footer">這里有一些聯(lián)系信息</p>
</app-layout>

但是好像也沒什么好推薦的。(個人看法)

再想想:

子組件的template中至少有一個slot標(biāo)簽,slot標(biāo)簽中的內(nèi)容是default content。什么場景能用到呢?我想到了剛剛寫的表格數(shù)據(jù)篩選,當(dāng)時用的是v-if,v-else。如果改成slot呢。。。

作用域插槽

語法:

<template scope="props">
  ...
</template>

——————這個官網(wǎng)例子我是好半天才明白

<my-awesome-list :items="items">
 <!-- 作用域插槽也可以是具名的 -->
 <template slot="item" scope="props">
  <li class="my-fancy-item">{{ props.text }}</li>
 </template>
</my-awesome-list>

以上的template中的props其實(shí)和子組件的props屬性是相同的,子組件傳遞了什么prop,它就接收什么,像是下邊的傳了個text

<ul>
 <slot name="item"
  v-for="item in items"
  :text="item.text">
  <!-- 這里寫入備用內(nèi)容 -->
 </slot>
</ul>

我看了很長很長時間,為什么要這么拐個彎呢。。。

————一夜過后—————

這樣內(nèi)容更靈活:數(shù)據(jù)是相同的(父組件提供數(shù)據(jù)),子組件負(fù)責(zé)了循環(huán)(添加邏輯),父組件引用子組件時插入的作用域插槽的模板決定了(展示的形式)!這分工?。?!點(diǎn)個贊!??!

我修改了一下自己的table然后頁面展示了個空白。之后發(fā)現(xiàn)問題出在子組件往外傳數(shù)據(jù)的時候變量名不能用"name"。修改掉。

關(guān)注點(diǎn):動態(tài)組件使用

通過使用保留的 <component> 元素,動態(tài)地綁定到它的 is 特性,我們讓多個組件可以使用同一個掛載點(diǎn),并動態(tài)切換:很適用于制作Tab類的效果

<component v-bind:is="currentView" :data1="data1" :data2="data2">
 <!-- 組件在 vm.currentview 變化時改變! -->
</component>

在methods屬性中定義一個函數(shù)修改currentView即可。

視情況可以配合 keep-alive 避免重新渲染

在子組件上放置activate鉤子做切換時的工作:done() //放到鉤子最后,表示執(zhí)行工作完畢,可以切換組件,配合keep-alive使用,activate鉤子只執(zhí)行一次

子組件接收數(shù)據(jù)和以往相同,只是這一次都寫在了component中,只是如此的話,每個子組件都需要有這些接口(prop)
暫時說到這里,突然得回頭看一下react,沒時間了,回頭會繼續(xù)。

以上這篇vue2.X組件學(xué)習(xí)心得(新手必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue.js實(shí)現(xiàn)格式化時間并每秒更新顯示功能示例

    vue.js實(shí)現(xiàn)格式化時間并每秒更新顯示功能示例

    這篇文章主要介紹了vue.js實(shí)現(xiàn)格式化時間并每秒更新顯示功能,結(jié)合實(shí)例形式分析了vue.js時間格式化顯示與基于定時器進(jìn)行實(shí)時更新的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Vue2中的過濾器filter使用及注意說明

    Vue2中的過濾器filter使用及注意說明

    這篇文章主要介紹了Vue2中的過濾器filter使用及注意說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue數(shù)據(jù)初始化initState的實(shí)例詳解

    vue數(shù)據(jù)初始化initState的實(shí)例詳解

    Vue 實(shí)例在建立的時候會運(yùn)行一系列的初始化操作,而在這些初始化操作里面,和數(shù)據(jù)綁定關(guān)聯(lián)最大的是 initState。這篇文章主要介紹了vue數(shù)據(jù)初始化--initState,需要的朋友可以參考下
    2019-04-04
  • nuxt.js框架使用小結(jié)

    nuxt.js框架使用小結(jié)

    本文主要介紹了nuxt.js框架使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號)

    Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號)

    有多個upload組件,每個都需要單獨(dú)上傳獲取文件(JS File類型),不需要action上傳到指定url,自定義上傳動作和http操作,下面通過本文給大家分享Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號),感興趣的朋友一起看看吧
    2024-06-06
  • element-ui?tree?手動展開功能實(shí)現(xiàn)(異步樹也可以)

    element-ui?tree?手動展開功能實(shí)現(xiàn)(異步樹也可以)

    這篇文章主要介紹了element-ui?tree?手動進(jìn)行展開(異步樹也可以),項(xiàng)目中用到了vue的element-ui框架,用到了el-tree組件,需要的朋友可以參考下
    2022-08-08
  • vue-cli腳手架-bulid下的配置文件

    vue-cli腳手架-bulid下的配置文件

    這篇文章主要介紹了vue-cli腳手架-bulid下的配置文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • vue2使用element-ui,el-table不顯示,用npm安裝方式

    vue2使用element-ui,el-table不顯示,用npm安裝方式

    這篇文章主要介紹了vue2使用element-ui,el-table不顯示,用npm安裝方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue后臺管理系統(tǒng)權(quán)限控制與動態(tài)路由的實(shí)現(xiàn)

    Vue后臺管理系統(tǒng)權(quán)限控制與動態(tài)路由的實(shí)現(xiàn)

    本文主要介紹了Vue后臺管理系統(tǒng)權(quán)限控制與動態(tài)路由的實(shí)現(xiàn),可以根據(jù)用戶的角色靈活控制頁面訪問權(quán)限,提高系統(tǒng)的安全性和用戶體驗(yàn),感興趣的可以了解一下
    2025-04-04
  • vue的列表交錯過渡實(shí)現(xiàn)代碼示例

    vue的列表交錯過渡實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了vue的列表交錯過渡實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論

启东市| 乐陵市| 北川| 镇江市| 遵化市| 金沙县| 界首市| 民县| 中江县| 二连浩特市| 威远县| 河南省| 福安市| 利津县| 万宁市| 盐池县| 大余县| 陈巴尔虎旗| 布尔津县| 增城市| 仁寿县| 天津市| 合肥市| 丰宁| 聂拉木县| 湟中县| 锡林浩特市| 卓尼县| 吉首市| 隆化县| 萍乡市| 佛冈县| 环江| 蒲江县| 呼和浩特市| 阿坝县| 翼城县| 运城市| 瓮安县| 青川县| 濮阳市|