我正在使用vue-cli和webpack构建我的第一个项目,我不确定如何正确使用外部JavaScript库来实现我的项目.
我想添加Intro.js库,它只需要我导入intro.js,为一些HTML元素添加一些标签,并调用introJs().start()函数.
我已经安装了库 npm install introj.js --save
我已经通过添加import introJS from 'intro.js'
到我<script>
的App.vue
文件部分导入了库.
我检查了编译后的app.js
文件,我知道introJS正在编译,所以一切都很好.
我的问题是,我在哪里放introJs().start()
?我尝试将它放在文件的mounted()
功能中,App.vue
但这不起作用.
附加信息:当我尝试introJS().start()
从该mounted ()
方法运行时,App.vue
我收到此错误:Error in mounted hook: "TypeError: __WEBPACK_IMPORTED_MODULE_7_intro_js___default(...) is not a function"
我有一个Vue.js内置的SPA,可让用户输入多个值来创建类似配方的内容。所有这些值都以Vuex状态存储。我希望能够使用用户输入的状态值创建URL,以便另一个用户可以使用已经输入的值加载应用程序。本质上,我希望允许用户通过共享URL共享他们在我的应用程序中创建的食谱。
我在想象一个“共享”按钮,它将创建的URL复制到用户的剪贴板,然后他们可以将其发布到社交媒体或其他任何内容上。然后,当有人访问该链接时,他们将转到我的应用程序,并且vuex状态值将自动更新为URL中找到的参数值。
实现此功能的最佳方法是什么?这有可能vue-router
吗?
我有一些异步函数可以调用 REST API 并返回结果。我想使用 Promise.all 一次调用其中几个函数并等待完整结果。我了解 Promise.all 的工作原理,这不是 Promise.all 的问题。这是使用 Array.push 动态创建我想要调用的异步函数数组的问题。
所以这是场景。我的应用程序的用户加载了一个页面。该页面需要从 API 检索数据。它使用我提到的那些异步函数来做到这一点。但是,页面需要检索的数据根据设置的参数而有所不同。所以有时,它可能需要检索用户列表、特定客户和特定项目。其他时候,它可能需要获得所有用户和所有项目,而没有客户。
所以我的代码看起来像这样:
created() {
let promiseList = []
if (options.getCustomers) { promiseList.push(listCustomers())
if (options.getCustomer) { promiseList.push(getCustomer(customerId)) }
if (options.getUsers) { promiseList.push(getUsers()) }
await Promise.all(promiseList)
}
Run Code Online (Sandbox Code Playgroud)
所以这在某种程度上是有效的。Promise.all 工作正常。问题是我不能在没有立即调用函数的情况下将函数推送到数组。因此,我推送到 promiseList 数组的每个函数都会被调用两次:一次又一次使用 Promise.all。
如何将异步函数作为引用推送到数组,以便它不会立即执行?
javascript ×2
vue.js ×2
vuejs2 ×2
arrays ×1
asynchronous ×1
intro.js ×1
promise ×1
vue-router ×1
vuex ×1
webpack ×1