千里之行,始於足下,先從一個小功能研究起,在菜單管理頁面有一個下拉樹,先研究下它怎么實現的
1、先找到menu.vue頁面
慣性思維先搜索請選擇三個字,原來是動態生成的
再向上找DropDown組件,找到了,之前打開時有點重疊,增加margin-left:20px。
不太熟悉slot,:transefer什么意思,之前沒用過iView,去查IView資料
trigger代表點擊觸發,:transfer應該是代表彈出時顯示到body內,不然的話可能會導致顯示不全。placement顯示的位置,修改該位置,可以看到下拉菜單會隨着變化。
2、slot:prepend有兩個屬性prepend是在左邊 append是在右邊,因為這部分代碼是幾個input組件放到一個大的input組件中,所以要設置prepend.
如上圖,最外層整個是一個input.正常、全部、請選擇設為prepend代表在輸入框左邊。如果設為append效果如下
prepend:預先,append:附加
3、下邊研究click事件點擊后如何彈出樹
通過查看iview文檔,可以看出除了custom,其他都是自動彈出的
4、然后是刷新菜單
該菜單對應的方法很明顯
查找所有相關代碼
顯示樹
mounted里自動加載MenuTree
menu.js里有對應的讀取數據方法,帶export的可以在組件里import
API中返回的數據如下
查看iView的tree節點定義如下,兩者一致,說明數據流程確實從這走的。
綜上就是下拉樹的實現方法