如何支援元件的子元素任意擺放

2022-02-15 07:23:17 字數 1400 閱讀 6013

乙個篩選元件如下圖:

篩選元件包含乙個button和乙個formbutton能控制form的顯示與隱藏。設計裡buttonform在一行,實現時理所當然地把這一行封裝成了乙個元件。

但在另乙個專案裡,設計有區別,button被放到了面板的右上角,之前寫的元件沒法復用了。

看看之前封裝的元件:

function filterbar() 

>);}

它做了以下 4 件事:

建立button

建立form

實現buttonform的聯動,

建立容器div.container, 對buttonform布局。

「建立容器div.container, 對buttonform布局」這件事導致了元件沒法在新專案裡復用。

能不能寫乙個元件,不對子元素布局,把布局的工作交給元件使用者去做?

思路:把div.container去掉,把buttonform的例項返回,元件變成了乙個 hook。

function usefilterbar() 

>

,showform ? () : (

undefined)];

}

const [filterbtn, filterform] = usefilterbar();

return (

name

ip

...

);}class 元件沒法用 hook 怎麼辦?

思路:使用高階元件,高階元件是函式元件,可以使用 hook,然後把buttonform通過props傳遞給 class 元件。

const withfilterbar = cmp => props => ;

uni app 子元件如何呼叫父元件的方法

1.在父元件methods中定義乙個方法 changetype function type 2.在父元件引用子元件時繫結該方法 cate top catelist catelist v on pchangetype changetype cate top 3.在子元件中繫結點選事件 template...

Vue 父元件如何觸發子元件中的方法

子元件 child 父元件 點選 1.首先父元件匯入子元件並且在components中定義子元件 2.引用子元件,並定義ref,用於 this.refs.mychild 呼叫 3.呼叫子元件的方法 parenthandleclick 為子元件的方法 注 在呼叫子元件的方法時 this.refs.my...

父元件如何呼叫子元件中的方法和屬性

利用ref屬性可以獲取到dom元素或者是子元件,從而可以呼叫子元件的方法 注意2.0版本用ref取代了el 1 當ref直接定義在dom元素上時,則通過this.refs.name可以獲取到dom對dom進行原生的操作 1 div 通過this.refs獲取到dom進行操作 注意ref屬性的命名不能...