共计 1411 个字符,预计需要花费 4 分钟才能阅读完成。
说一种没人发的,利用混入 mixins 来实现全局变量和函数。mixins 里面的方法、变量、筛选器会和组件里面的方法、变量、筛选器合并。这种方法优点是 ide 会有方法、变量、筛选器提示。
一、main.js 文件
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
import mixin from './utils/mixin'
Vue.prototype.$bus = new Vue()
// 进行全局混入
Vue.mixin(mixin)
new Vue({
store,
router,
render: h => h(App),
}).$mount('#app')
一、mixin.js 文件,我是把方法、变量、筛选器这三个分别写到三个 js 文件里面了,方便后期维护。也可以直接写到 mixins 文件里面
import filters from './filters'
import globalMethods from './global-methods'
import Config from '../config'
import CONSTANT from './const_var'
// 全局混入
export default {data() {
return {
CONFIG: Config,
CONSTANT,
}
},
methods: {
// // 将 globalMethods 文件里面的方法挂载到 vue 上, 以方便调用,直接 this.$xxx 方法名就可以了
// Object.keys(globalMethods).forEach(key => {// Vue.prototype[key] = tools[key]
// })
// 将 globalMethods 里面的方法用对象展开符混入到 mixin 上, 以方便调用,直接 this.$xxx 方法名就可以了
...globalMethods,
},
filters: {
// // 将 filter 里面的方法添加了 vue 的筛选器上
// Object.keys(filters).forEach(key => {// Vue.filter(key, filters[key])
// })
...filters,
},
}
filters.js 文件
export default {
// 时间转换器
date(v) {...},
// 处理身份证信息,中间隐藏掉
processIdNumber(v) {...},
}
global-methods.js 文件
import {Message, MessageBox} from 'element-ui'
export default {$success(msg) {...},
$warning(msg) {...},
$error(msg) {...},
$checkPlatform() {...},
// 倒计时时间格式化
$countdownFormatTime(timeStamp) {...},
}
constant_var.js 文件
export default {
REDIRECT: 'redirect',
// 请求方法
POST: 'post',
GET: 'get',
PATCH: 'patch',
DELETE: 'delete',
PUT: 'put',
// 静态常量
PICKEROPTIONS: {...},
PAGENUMBER: 1,
PAGESIZE: 10,
DELAYTIME: 250,
SUCCESS: '000000',
}
正文完
发表至: javascript
2019-07-29