最近用NUXT做前端项目,需要引入一个时间插件moment,搜了一下,大家都是通过在每个组件中引用一次这样import moment from 'moment'
来用的,感觉比较麻烦。自己试了一下,其实可以直接通过NUXTL的plugins 来直接全局引用的。具体的实现方法如下:
1. 安装 moment包 mpn i moment
2. 在nuxt.config.js
配置文件中的plugins
选项中添加:
plugins: [
'@/plugins/moments'
...
]
3. 在plugins文件夹下面新建文件moments.js
文件内容如下:
// 全局加载组件
import Vue from 'vue'
import moment from 'moment'
import 'moment/locale/zh-cn'
// 使用中文时间
moment.locale('zh-cn')
Vue.prototype.$moment = moment
我的项目是用了 antd vue的ui的,所以我就写在一起了,如果你也用了UI框架,可以都写在一起,我的参考如下:
// 全局加载组件
import Vue from 'vue'
import Antd from 'ant-design-vue/lib'
// import 'ant-design-vue/dist/antd.css'
import moment from 'moment'
import 'moment/locale/zh-cn'
// 使用中文时间
moment.locale('zh-cn')
Vue.prototype.$moment = moment
Vue.use(Antd)
4. Vue组件内使用
跟在常规的使用方法一致:
this.$moment().format('YYYY-MM-DD')