乙個篩選元件如下圖:
篩選元件包含乙個button
和乙個form
,button
能控制form
的顯示與隱藏。設計裡button
和form
在一行,實現時理所當然地把這一行封裝成了乙個元件。
但在另乙個專案裡,設計有區別,button
被放到了面板的右上角,之前寫的元件沒法復用了。
看看之前封裝的元件:
function filterbar()
>);}
它做了以下 4 件事:
建立button
,
建立form
,
實現button
和form
的聯動,
建立容器div.container
, 對button
和form
布局。
「建立容器div.container
, 對button
和form
布局」這件事導致了元件沒法在新專案裡復用。
能不能寫乙個元件,不對子元素布局,把布局的工作交給元件使用者去做?
思路:把div.container
去掉,把button
和form
的例項返回,元件變成了乙個 hook。
function usefilterbar()
>
,showform ? () : (
undefined)];
}
const [filterbtn, filterform] = usefilterbar();
return (
name
ip
...
);}class 元件沒法用 hook 怎麼辦?
思路:使用高階元件,高階元件是函式元件,可以使用 hook,然後把button
和form
通過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屬性的命名不能...