【问题标题】:Nuxt.js with vue-momentNuxt.js 与 vue-moment
【发布时间】:2021-07-17 21:07:55
【问题描述】:

我正在使用 vue-moment,它运行良好,虽然我在控制台中遇到错误

[Vue warn]: Failed to resolve filter: moment

我在做什么:

plugins/moment.js

    import VueMoment from 'vue-moment'
    import Vue from 'vue'
    Vue.use(VueMoment)

nuxt.config.js

  plugins: [
    { src: '~/plugins/moment.js', mode: 'client' }
  ],

Vue-moment 工作正常,但出现错误。

【问题讨论】:

  • this 可能会有所帮助

标签: vue.js nuxt.js momentjs


【解决方案1】:

尝试使用Nuxt 版本。 它是专为 Nuxt 制作的,因此您不会有任何问题。

【讨论】:

  • 请注意 vue-moment 与 moment 不同。一个是滤镜,一个是moment插件。
  • @AntonyMN 仍然不推荐。
  • @kissu 我想如果您有需要支持的遗留代码,这将起作用。今后,请使用其他软件包
  • @AntonyMN 如果您可以使用 moment.js,那么此时您几乎可以使用其他任何东西。这不像拥有 Node.js v8 依赖或类似的东西。如果你有这样的遗产,那么转移到其他地方将是当务之急。
【解决方案2】:

您可能应该继续使用 Moment,因为它本身已弃用:https://momentjs.com/docs/#/-project-status/

而是使用date-fns的模块,安装和使用非常简单:https://github.com/nuxt-community/date-fns-module

【讨论】:

    【解决方案3】:

    如果有人还在经历这个,这就是我的方法。

    在插件文件夹中,我创建了一个名为vue-moment.js 的文件,这就是内容。

    import Vue from 'vue'
    Vue.use(require('vue-moment'));
    

    在那之后,我在nuxt.config.js下添加了这一行plugins

    plugins: [
    ...
    "~/plugins/vue-moment",
    ...
    ],
    

    之后,在组件中使用它时,我需要做的就是调用如下所示的函数。

    <span>{{ new Date() | moment("dddd, MMMM Do YYYY") }}</span>
    

    我希望这对某人有所帮助。

    【讨论】:

    • filters 在 Vue2 中已被弃用,因为它们(已经)在 Vue3 中被删除。 Moment.js 很旧,不再维护,没有那么灵活、可变、沉重等。所以,是的,根本不是一个好的推荐解决方案。
    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 2020-07-12
    • 2021-07-06
    • 2017-01-29
    • 2020-08-04
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多