Vue3 响应式全局对象
项目需求 实现一个 响应式全局对象,在A模板页修改全局对象 ,在B模板页中自动响应改变为新值
main.js
全局对象 globalVars
import { createApp } from 'vue' import { reactive } from 'vue' import App from './App.vue' import axios from 'axios' const app = createApp(App); app.config.globalProperties.$axios = axios; const globalVars = reactive({ var1: 'value1', var2: 'value2' }) app.provide('globalVars', globalVars) app.mount('#app');
模板页 FootComponent.vue
用于改变 全局对象 globalVars 中 var1 的值
<script> // 在子组件中注入全局对象 import { inject } from 'vue'; export default { // 组件名称 name: 'FootComponent', setup() { // 注入全局对象 const globalVars = inject('globalVars') return { globalValue, handleClick }; function handleClick() { console.log("原:"+globalVars.var1); globalVars.var1 = 'new value'; console.log("改后:"+globalVars.var1); } },
<a href="javascript:;" class="IndConFa flexC fl-cen" v-on:click="handleClick()" ><p>{{ globalValue }}点击改变全局对象</p></a>
模板页 SoftComponent.vue
用于显示
<script> // 在子组件中注入全局对象 import { inject, watch } from 'vue' export default { // 组件名称 name: 'SoftPhoneComponent', data() { return { global_var:"", } }, setup() { // 注入全局对象 const globalVars = inject('globalVars'); watch(() => globalVars.var1, (newValue) => { // 更新自己的状态 globalVars.var1=newValue; console.log("watch "+newValue); }) return { globalValue, globalVars }; },
显示
<a href="javascript:;" class="IndPhone flexC fl-cen"> <p>90021<br>全局变量{{ globalVars.var1 }} <br></p></a>
另外如果想在 mian.js 的函数中访问这个全局对象
是不能加 this. 的 而且这个函数要在 定义合局变量的后面写
例如
//改变全局对象 function websocket_resMsg_extTelStatus(msg){
globalVars.var1 = msg;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2022-07-07 Vue 表格 增删改查 纯前端
2022-07-07 Vue 列表 增删改 前端代码
2022-07-07 Vue var 变量 按数字形式 加 1
2022-07-07 Vue el-dialog 动态修改 title 值
2022-07-07 Intellij IDEA 的maven项目 通过Java代码,实现 Jetty 的 Http服务器
2022-07-07 JS 将json字符串 转为 json对象 中JSON.parse和eval的区别及用法
2022-07-07 JS/Jquery遍历JSON对象、JSON数组、JSON数组字符串、JSON对象字符串