首先,新建一个文件夹,命名为 workBox 在文件夹里面新建 lib文件夹 再新建 memorizer.js 文件
//workBox/lib/memorizer.js
var store = { //定义了一个名为store的JavaScript对象。
initially() { // 定义一个名为initially的方法,用于初始化本地存储。
if (uni.getStorageSync('store') == '') {
//如果当前存储中没有store对象,则执行下面的代码块。
uni.setStorageSync('store', {}) //将store对象设置为空对象,并返回。
return
}
const data = uni.getStorageSync('store') //获取当前存储中的store对象。
for (let i in data) { //遍历存储中的对象,将每个属性都赋值给store对象。
if (!this[i]) { //如果store对象中没有当前属性,则将存储中的属性值赋给store对象
this[i] = data[i]
}
}
},
setData(key, value) { //定义一个名为setData的方法,用于向store对象中添加或更新属性。
if (key == 'initially' || key == 'setData') {
//如果传入的属性名为initially或setData,则输出错误信息并返回。
return
}
this[key] = value
uni.setStorageSync('store', this)
},
deleteData(key) { //定义了一个名为deleteData的方法,用于从store对象中删除属性
if (key == 'initially' || key == 'setData' || key == 'deleteData') {
console.error('store:非法key值', key)
return
}
delete this[key]
uni.setStorageSync('store', this)
}
}
module.exports = store //将store对象导出为模块。
在 workBox 新建 index.js文件
const store = require('@/lib/store') //引入store
const runOl = {
// 定义一个名为runOl的JavaScript对象,该对象包含一个名为store的属性和一个名为install的方法
store,
install(Vue) {
this.store.initially() //调用store对象中的initially方法,初始化本地存储
for (let i in this) {
//遍历runOl对象中的所有属性,将除了install以外的属性添加到Vue的原型上
if (i == 'install') {
continue
}
Vue.prototype[i] = this[i]
}
delete this.install //最后从runOl对象中删除install方法
}
}
export default runOl //将runOl对象导出为Vue插件
在main.js中引入
import runUni from '@/common/index.js'
Vue.use(runUni)