[英]Nuxt.js:How to define common method used in mounted () of component, and change data of component
我想按以下方式檢測組件的mount()中的滾動事件,並更改組件中使用的數據。
·零件
<script>
import checkScroll from '~/utils/checkScroll'
export default {
...
data() {
return {
scrollPosition: 0
}
},
mounted() {
window.addEventListener(
'scroll',
checkScroll(this.scrollPosition, window.scrollY)
)
},
</script>
·utils的/ checkScroll.js
export default function checkScroll(scrollPosition, scrollY) {
scrollPosition = scrollY
}
在這種情況下有兩個問題
我想每次滾動都執行此功能,但是該功能僅在第一次滾動時執行
2.組件內部的this.scrollPosition
值不變。
如果是這樣,它將如何運作?
第一個問題不應該發生。 如果您添加eventListener,它將在您每次滾動時執行,並且我在本地進行了檢查,它可以按預期工作。 但是您應該將一個函數傳遞給事件偵聽器,但是您要傳遞已經執行的函數。
您可以從中返回結果並執行類似的操作
export default function checkScroll(event) {
return window.scrollY;
}
mounted() {
window.addEventListener("scroll", event => {
this.scrollPosition = checkScroll(event);
});
}
這里是CBS的工作示例https://codesandbox.io/s/0qjkoox68v
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.