Vue滾動載入自定義指令

2022-05-10 19:46:09 字數 989 閱讀 9128

用vue在移動端做滾動載入,使用mint-ui框架,infinitescroll指令loadmore元件,在uc瀏覽器和qq瀏覽器都無法觸發。無奈我只能自己寫了。

決定用vue 的自定義指令 寫滾動載入。

核心的api

思路給window繫結滾動事件,用  if(滾動條高度 + 瀏覽器視窗高度 >= 內容高度 - 閾值)  作為判斷條件。我們把自定義指令命名為 scroll

directives: ,

//路由轉跳到其他頁面時,會呼叫unbind,解綁滾動載入事件。

unbind:

function

(el,binding, vnode) }},

methods: ,

getnewsdata()

},

有乙個重點,因為傳送請求和滾動事件的方法定義在了元件的methods中,需要拿到vue例項,但在自定義指令裡,不能通過this拿到vue例項,而是通過指令鉤子函式的第三個引數vnodecontext屬性拿

必須要在unbind鉤子中解綁滾動載入事件,否則在其他頁面也會被觸發。

使用 時,因為基於文件高度和滾動條高度,綁在**無所謂,這裡繫結到容器上就可以了。

<

template

>

<

section

v-scroll

>

<

ul>

<

template

v-for

="data in datas"

>

<

li>

..........

li>

template

>

ul>

section

>

template

>

Vue自定義指令

vue有很多內建的指令,比如說v on,v model,v clock等等,每乙個指令會完成一定的功能,但是這些內建的指令總會有些侷限性,要是能夠自定義指令就好了 vue的自定義指令分類 全域性指令和區域性指令 vue指令的定義和用法 以全域性指令為例 1.語法 vue.directive 指令id...

vue自定義指令

自定義指令主要有兩種方式。一是在元件裡以directives的選項來自定義指令的內容。這樣的自定義指令是區域性的自定義指令,只在當前的元件裡面才能使用。script export default directives arr arr.join el.style.csstext arr script ...

VUE 自定義指令

dom插入便獲取焦點 vue.directive focus 根據指令的值決定自否獲取焦點 vue.directive focus 注 被拖拽的元素必須有定位樣式 vue.directive drag function el,binding document.nm useup function 拓展...