【问题标题】:Where to import file js in vue/nuxtvue/nuxt在哪里导入文件js
【发布时间】:2019-12-30 10:03:21
【问题描述】:

通常我使用带有函数的 js 代码来运行某些事件。

现在我正在使用 nuxt.js,我想知道将这个文件放在哪里,或者如何创建一个全局方法来在每个组件中使用这些函数。 我可以在每个特定组件中编写我需要的方法,但在它之外无法使用。

如何在 vue/nuxt 中做到这一点?

【问题讨论】:

    标签: vue.js vuex nuxt.js


    【解决方案1】:

    所以在 vue.js 中做到这一点的一种方法是使用 mixins,在 nuxt 中你也可以使用 mixins,然后你应该将它们注册为插件,但首先:

    非全局混入

    为你的 mixin 创建一个额外的文件夹。例如在 /mixins/myMixin.js

    export default {
      methods: {
        commonMethod() {
          console.log('Hello')
        }
      }
    }
    

    然后导入布局、页面或组件,并通过 mixins 对象添加:

    <script>
      import myMixin from '~/mixins/myMixin.js'   
    
      export default {
        mixins: [myMixin] 
      }
    </script>
    

    全局混入

    例如在新文件 plugins/mixinCommon.js 中:

    import Vue from 'vue'
    
    Vue.mixin({
      methods: {
        commonMethod() {}
      }
    })
    

    将文件包含在nuxt.config.js 中,如下所示: plugins: ['~/plugins/mixinCommon']

    之后,您将在任何地方都可以使用该方法,并使用 this.commonMethod() 在那里调用它。但这里有一个来自 vue.js 文档的建议:

    谨慎使用全局混合,因为它会影响每个 创建的单个 Vue 实例,包括第三方组件。多数情况 在这种情况下,您应该只将它用于自定义选项处理,例如 在上面的例子中演示过。运送它们也是一个好主意 作为插件避免重复应用。

    【讨论】:

    • 酷现在它可以工作了,但是如果我有一些之前正在处理文档准备好的功能$(document).ready(例如插件的初始化)我应该如何以及在哪里调用它?
    • 一旦你注册为插件,你可以在任何地方使用 this.myMethod() 调用它,如果你注册了非全局的 mixin,你需要在 export default 中添加mixins: [myMixin]。对于插件,您需要使用插件目录并使用Vue.use(Plugin)
    • 另一个疑问,我认为每次都调用每个组件中的所有mixin不是最好的吗?只调用该特定组件中我们需要的方法的功能不是更好吗?你怎么看?
    • 1) 我反对全局 mixin,因为你很可能会在 2-3-4 处使用它们,但在 40-50 处加载它们。 2)是的,最好使用 import {commonMethod} from 'mixin' 而不是整体,但我不确定 export commonMethod 是否应该是返回方法的对象,或者只是一个函数表达式..
    • 无论如何,如果您可以使用mixins/blog.js mixins/products.js mixins/general.js,您将不会共享大量共享功能,而无需更改某些页面的逻辑,所以您会很高兴无需导入特定功能。
    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 2021-05-28
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多