javascript - 如何在 VueJs 项目中导入单个 Lodash 函数?
问题描述
我正在尝试debounce
在我的 VueJs 项目中导入该函数。
我跑了:npm i --save lodash.debounce
然后我将它导入到我的项目中:import { debounce } from 'lodash/debounce'
并尝试使用它:
debounce(() => {
console.log('I only get fired once every two seconds, max!')
}, 2000)
我也尝试将它导入为import debounce from 'lodash/debounce'
,但无论我做什么,我都无法让它工作。
我读了这篇堆栈文章,但这似乎也不起作用:如何导入单个 Lodash 函数?
任何人都知道如何做到这一点?
谢谢。
解决方案
问题不在于导入单个 Lodash 函数,而debounce
只是返回一个函数(原始传递函数的新版本)。要调用原始函数,您需要调用debounce
返回的函数。
这可能是你想要的:
<script>
import debounce from 'lodash/debounce';
export default {
// ...
methods: {
origFunction() {
console.log('I only get fired once every two seconds, max!');
},
},
computed: {
// Create a debounced function
// As it is a computed prop it will be cached, and not created again on every call
debouncedFunction() {
return debounce(this.origFunction, 2000);
}
},
created() {
this.debouncedFunction(); // Lodash will make sure thie function is called only once in every 2 seconds
}
}
</script>
在Lodash 文档中查看更多信息。