Как я могу настроить moment.js в vuetify? - PullRequest
0 голосов
/ 15 октября 2019

Я использую vuetify: https://vuetifyjs.com/en/ Я хочу использовать moment.js. Поэтому я прочитал эту ссылку: https://www.npmjs.com/package/vue-moment

Я запустил npm install vue-moment

Я все еще не могу поставить этот скрипт Vue.use(require('vue-moment'));

Вvuetify, существует два файла: main.js и index.js

main.js, например:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store/index'
import './registerServiceWorker'
import vuetify from './plugins/vuetify'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  vuetify,
  render: h => h(App)
}).$mount('#app')

index.js, например:

import Vue from 'vue';
import Vuex from 'vuex';
import dataStore from './modules/data-store';
import createLogger from "vuex/dist/logger";
Vue.use(Vuex);
const debug = process.env.VUE_APP_DEBUG !== "production";
export default new Vuex.Store({
  modules: {
    dataStore
  },
  strict: debug,
  plugins: debug ? [createLogger()] : []
});

куда я помещаю Vue.use(require('vue-moment'));?

Я пытаюсь поместить его в main.js, но если я вызываю свой компонент vue, возникает ошибка: ReferenceError: moment is not defined

Мой компонент vue похожэто:

<template>
  ...
</template>

<script>
export default {
  mounted() {
    let a = moment("2012-02", "YYYY-MM").daysInMonth();
    console.log(a)
  }
};
</script>

1 Ответ

1 голос
/ 15 октября 2019

Я нашел это в нижней части страницы vue-moment npm

vue-moment attaches the momentjs instance to your Vue app as 
this.$moment.

This allows you to call the static methods momentjs provides.

Так что вы должны иметь возможность использовать исходную конфигурацию vue-moment и делать это в вашем mounted() методе

 mounted() {
    let a = this.$moment("2012-02", "YYYY-MM").daysInMonth();
    console.log(a)
 }

уведомление this.$moment

И для настройки vue-moment вы должны поместить это в свой файл main.js

main.js

Vue.use(require('vue-moment'))

==============================================================================

GLOBAL

Если вы хотитеиспользуя moment с Vue глобально, вы можете создать Prostty Instance

main.js

import moment from 'moment'

Vue.prototype.moment = moment

В вашем компоненте вы затем вызываете this.moment в ваших методах иливычисляемые свойства. В вашем разделе mounted это будет выглядеть следующим образом:

 mounted() {
   let a = this.moment("2012-02", "YYYY-MM").daysInMonth();
   console.log(a)
 }

COMPONENT

Если вы просто хотите использовать moment в компоненте, который вы можете включить какэто

<script>
import moment from 'moment'
export default {
  mounted(){
    let a = moment("2012-02", "YYYY-MM").daysInMonth();
    console.log(a)
}
}
</script>
...