总结一下我的开发的后台管理系统中用到的插件 项目地址html
使用vuex-persistedstate实现数据持续存vue
//安装
npm i vue-persistedstate -S
//使用 在 store.js 中
import createPersistedState from "vuex-persistedstate"
export default new Vuex.Store({
...
plugins:[createPersistedState({
storage: window.sessionStorage, // 存储方式 默认使用 localStorage
reducer(state){
return { // 这里须要存储的vuex 中的数据位置也要同样 , 好比模块 app 中的 test 参数
app: {
test: state.app.test
}
}
}
})]
})
复制代码
使用 vue-countTo实现数字滚动效果java
// 安装
npm i vue-count-to -S
// 使用 在组件中
import CountTo from 'vue-count-to'
<template>
<countTo :startVal="startVal" :endVal="endVal" :duration="3000"></countTo>
</template>
// 常见属性
详见文档
复制代码
使用 Moment.js 快速处理时间git
// 安装
npm i moment -S
// 使用 在 main.js中
import moment from 'moment'
moment.locale('zh-cn')
Vue.prototype.$moment = moment
// 在组件中直接使用
this.$moment(new Date()).format('YYYY-MM-DD')
复制代码
使用 screenfull 实现全屏操做github
常见属性和方法vuex
属性/方法 | 描述 | 值 |
---|---|---|
screenfull.isEnabled | 返回浏览器是否支持全屏操做 | true/false |
screenfull.isFullscreen | 返回当前浏览器状态 | true/flase |
screenfull.toggle() | 切换当前状态 | |
screenfull.on('change', fn) | 添加监听事件,监听全屏改变 | |
screenfull.off('change',fn) | 移除监听事件 | |
screenfull.request() | 接受一个dom,设置某个元素全屏操做 | 默认值 html |
// 安装
npm i screenfull -S
//在组件中
import screenfull from 'screenfull'
<button @click="handleFullScreen"></button>
<script>
export default {
data(){
return {
isFullScreen: false
}
},
methods:{
handleFullScreen(){
if(screenfull.isEnabled){
screenfull.toggle()
}else {
this.$message.warning('当前浏览器不支持')
}
},
change(){
this.isFullScreen = screenfull.isFullscreen
}
},
created(){
if(screenfull,isEnabled){
screenfull.on('change', this.change)
}
},
beforeDestory() {
if(screenfull.isEnabled) {
screenfull.off('change', this.change)
}
}
}
</script>
复制代码
使用 vue-i18n 实现 国际化npm
通常 我会建立三个文件 index.js en.js zh.jselement-ui
// 在 index.js 中
import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n) // 以插件的形式挂载到vue上
// 引入语言包 结合 element 使用
import en from './en'
import zh from './zh'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
const i18n = new VueI18n({
locale: 'zh', // 通常结合 vuex + 本地存储 实现 刷新语言还在
messages: {
'zh': Object.assign(zh, zhLocale),
'en': Object.assign(en, enLocale)
}
})
export default i18n
//在 main.js 中
import i18n from './lang/index'
new Vue({
...
i18n
}).$mount('#app')
// 而后再组件中
// 展现字段
{{$t('test')}}
// js 中
this.$t('test')
// 语言切换
this.$i18n.locale = 'en'
复制代码
未完待续...浏览器