自定義指令主要是為了對底層dom實現操作,雖然說vue主要是以資料驅動檢視,但是總有一些只能操作dom的應用場景,例如最常見的:拖拽。此時,就是自定義指令大顯身手的時候了。
為了方便操作,以tab切換為例:
在router-view上左右滑動,切換路由:
我是利用vue animate css來為路由切換新增了乙個動畫的效果,這裡暫不關注。這裡需要關注的就是v-swipe-horizontal,「v-」是vue中約定的各種指令的寫法,所以其實真正的指令是swipe-horizontal,那麼怎麼定義swipe-horizontal呢?
全域性定義:
// 註冊乙個全域性自定義指令 `v-focus`
vue.directive('swipe-horizontal',
})
區域性定義:
swipehorizontal:),
currentrouteindex = routes.indexof(xc),
nextroute = null,
nextindex = null;
*/// 利用路有物件自定義的index屬性判斷
let routes = vnode.context.$router.options.routes,
currentroute = vnode.context.$route.path,
currentrouteindex = routes.find((item)=>).index,
nextroute = null,
nextindex = null;
var arr = routes.map((item)=>)
var max = math.max(...arr)
el.ontouchstart = (ev)=>
document.ontouchend = () => else if(disx - x > 20) */
nextroute = routes[nextindex]
if (x - disx > 20) else if(disx - x > 20)
if (nextindex != null) )
//在自定義的指令中,只有通過vnode.context才能獲取到vue物件
vnode.context.$router.replace(nextroute)
}}
我這裡提供了兩種確定路由的模式,主要是確定路由路徑的需要。
一種依賴路由陣列的順序,但是這種情況下,路由陣列的順序就必須與tab選項卡檢視展示的資料保持一致。
另外一種是為每乙個路由新增乙個index屬性,以確定當前tab選項卡展示的順序。
自定義指令中,主要邏輯是需要存在於自定義指令的鉤子函式中的,而鉤子函式又分為bind,inserted,update,componentupdated,unbind五種,我不知道有多少人能夠用到所有的鉤子函式,從我的角度來說,常用的鉤子函式bind或者inserted,兩者選擇其一就可以了。
02 09 選項卡 及自定義滾動條
定義滾動條寬高及背景,寬高分別對應橫豎滾動條的尺寸 scrollbar webkit scrollbar 定義滾動條的軌道,內陰影及圓角 scrollbar webkit scrollbar track 定義滑塊,內陰影及圓角 scrollbar webkit scrollbar thumb tab...
向C 的選項卡中新增自定義窗體
一.自定義窗體的搭建 這個比較簡單,新增乙個winform窗體就行了,設定乙個名字editpanel,然後在窗體上畫需要的控制項。二.將自定義窗體新增到選項卡 新建窗體加入到選項卡中 editpanel p1 new editpanel 這個就是自定義窗體 p1.formborderstyle fo...
向C 的選項卡中新增自定義窗體
一.自定義窗體的搭建 這個比較簡單,新增乙個winform窗體就行了,設定乙個名字editpanel,然後在窗體上畫需要的控制項。二.將自定義窗體新增到選項卡 新建窗體加入到選項卡中 editpanel p1 new editpanel 這個就是自定義窗體 p1.formborderstyle fo...