将公共数据挂在 Vue 原型上(简单、适合 CDN)

在common.js里获取共同的数据后,统一挂载到vue原型上,不用每个页面都调用

Vue.observable 让对象变成响应式,一处修改,所有用到的地方自动更新。

无需混入 data,避免了数据副本问题。

Vue.observable(\[\]) 的作用是将一个普通对象(或数组)转化为响应式对象。

Vue.observable({ name: '', age: 0 }) 括号里面的就是初始值

javascript 复制代码
// 在 common.js 中,new Vue 之前
const store = {
    paylist: Vue.observable([]),   // 创建响应式对象
    memberlevel: Vue.observable({ name: '', age: 0 }),
    // ... 其他数据
};

// 挂载到 Vue 原型,所有组件通过 this.$store.xxx 访问
Vue.prototype.$store = store;

// 在根组件中更新数据
getindexdatas() {
    $.ajax({
        success: (res) => {
            this.$store.paylist = res.data.paylist;   // 更新共享数据
        }
    })
}

// 在任何组件中读取
console.log(this.$store.paylist);

或者直接写变量,不用中间的$store 变量

javascript 复制代码
// 在 common.js 中,new Vue 之前

// 挂载到 Vue 原型,所有组件通过 this.$store.xxx 访问
Vue.prototype.paylist = Vue.observable([])   // 创建响应式对象
Vue.prototype.memberlevel= Vue.observable({ name: '', age: 0 })   // 创建响应式对象
// ... 其他数据

// 在根组件中更新数据
getindexdatas() {
    $.ajax({
        success: (res) => {
            this.paylist = res.data.paylist;   // 更新共享数据
        }
    })
}

// 在任何组件中读取
console.log(this.paylist);

免费在线工具网站 https://mantools.top

相关推荐
程序员大阳1 小时前
副队长JavaScript教程(56)-DOM之表单操作
javascript·dom·表单操作
Dxy12393102162 小时前
JS AES加密详解
开发语言·javascript·ecmascript
溪语流沙2 小时前
【每天一个CSS | Day41】开关三连:一套状态机,三种视觉翻译
前端·css·html5·每日一练·按钮
变与不变8062 小时前
css定位布局精讲
前端·css
FRing032 小时前
JavaScript入门到精通三十三(异常处理、call方法、apply方法、bind方法、防抖、节流)
开发语言·前端·javascript
计算机魔术师3 小时前
OpenAI 砍掉 100 亿融资目标,AI 资本市场的温度计变了
前端
jktantan3 小时前
(二)Vue 3 的 attrs 不是响应式:el-form 扩展属性同步的三种方案
前端·javascript·vue.js·element-plus
前端 贾公子4 小时前
第 5 章:Codex 从可运行程序到可交付工具
java·前端·数据库
用户360055579004 小时前
Kestrel_VLLM - 26 · 发射空档三步曲:事件计时 → nsys → 判别实验
前端
echome8884 小时前
JavaScript async/await 错误处理:别让 Promise 静默失败
开发语言·前端·javascript·promise