首页 > 其他分享 >vue3 watch 监听响应式数据变化 改变img的src

vue3 watch 监听响应式数据变化 改变img的src

时间:2023-08-21 17:08:22浏览次数:33  
标签:src console img url watch globalData websockStatus open png

目标:用一个图片来监视全局websocket对象的连接状态

   

全局websocket的写法详见:https://www.cnblogs.com/hailexuexi/p/17577818.html

main.js

全局对象  websocket的连接状态

//全局对象
const globalData=reactive({
	
	websockStatus:"open",
})
app.provide('globalData', globalData);

websocket 的 连接成功 ,连接失败,连接关闭 函数 中赋值

function websocketonopen(){ //连接建立 
      console.log("连接建立成功" ); 
      globalData.websockStatus="open";
} 
function websocketonerror(){//连接建立失败重连
     console.log('连接建立失败');
	 globalData.websockStatus="close";
} 
function websocketclose(e){  //关闭
	console.log('断开连接',e);
	globalData.websockStatus="close";

}

HeaderComponent.vue 模板页

动态绑定src

<img id="imgWebSocketStatus"  v-bind:src="png_url"></a>

用于响应式的变量的写法。 直接赋值是不起作用的,也不报错。

定义: let png_url = ref("");

赋值:png_url.value= png_url_open;

取值: console.log("已连接============"+png_url.value);   src的相对目录问题,用require函数
const png_url_open=require('../assets/images/icon/Hdi01.png');

js代码

<script>
// 在子组件中注入全局对象
import { ref,inject, watch } from 'vue';

export default {
	// 组件名称
	name: 'HeaderComponent',
	setup() {
		// 注入全局对象
		const globalData = inject('globalData');

		let png_url = ref("");

		const png_url_open=require('../assets/images/icon/Hdi01.png');
		const png_url_close=require('../assets/images/icon/Hdi02.png');
 
        //监听全局对象 数据的变化
		watch(() => globalData.websockStatus, (newValue) => {
			// 更新 状态
			globalData.websockStatus=newValue;
			console.log("websockStatus "+globalData.websockStatus);	
            
			if(globalData.websockStatus=="open"){
				png_url.value= png_url_open;
				console.log("已连接============"+png_url.value);		

			}else{	
				png_url.value=png_url_close;
				console.log("断开连接============"+png_url.value);	

			}
            
		})

		return {
			globalData,
			png_url,
			png_url_open,
			png_url_close
		};
    },
	 
 
}
</script>

 

标签:src,console,img,url,watch,globalData,websockStatus,open,png
From: https://www.cnblogs.com/hailexuexi/p/17646494.html

相关文章

  • 在Vue3后台管理系统中使用watch和watcheffect
    ​ 1、watch在Vue3中的组合式API中,watch的作用和Vue2中的watch作用是一样的,他们都是用来监听响应式状态发生变化的,当响应式状态发生变化时,都会触发一个回调函数。constmessage=ref("test");watch(message,(newValue,oldValue)=>{console.log("新值:",ne......
  • 在CentOS小实验看门狗watchdog
    前言继续上文内容https://blog.51cto.com/infrado/7083074,上文说到,看门狗的调用。环境实验环境同上文,继续是ESXi环境,进行一些有趣的实验,以及在x86服务器硬件上,看门狗是如何工作的,以及arm环境的Linux系统看门狗的小实验。watchdog经常被用于重置系统,其实在很多业务中相当实用,但是极......
  • 使用C++界面框架ImGUI开发一个简单程序
    目录简介使用示例下载示例main文件设置ImGui风格设置字体主循环添加Application类中文编码问题界面设计关于imgui_demo.cpp创建停靠空间创建页面隐藏窗口标签栏创建导航页面创建内容页面隐藏控制台窗口打包程序总结待解决问题开发优势附件简介ImGui是一个用于C++的用户界面库,跨......
  • iTOP-RK3588开发板单独编译Android固件-打包update.img
    在ubootkernelandroid都编译完成的情况下,才可以打包update.img,所以一般在完整编译的时候用。输入以下命令:./build.sh-u打包完成会在rockdev/Image-rk3588_s目录下生成update.img镜像。更多内容:B站搜索迅为RK3588开发板......
  • 有个pil_img数据,目前我使用pil_img.save('img.jpg')保存图片,然后在使用img =open('img
    fromPILimportImageimportio#假设pillow_img是Pillow图像对象#这里使用一个示例对象,实际应根据你的数据进行替换pillow_img=Image.open('input_image.jpg')#将Pillow图像数据保存到内存中image_stream=io.BytesIO()pillow_img.save(image_stream,format='JP......
  • 关于前端开发中 img 元素的 srcset 属性
    img标签的srcset属性是一种用于响应式网页设计的属性,它允许开发者为图像提供不同大小和分辨率的版本,以便根据设备的屏幕大小和像素密度自动选择最合适的图像进行显示。通过使用srcset属性,可以在不同设备上提供最佳的视觉体验,避免了不必要的图像变形和加载大尺寸图像的性能问......
  • import.meta.globEager('./src/components/**/*.vue'); 遍历文件
    main.jsconstimportAll=(modules)=>{Object.keys(modules).forEach((key)=>{constcomponent=key.replace('/src/','@/').replace('.vue','');constcomponentName=key.split('/').slice......
  • Java| jdk的src源码目录讲解
    JavaJDK的源代码目录(src)包含了Java核心类库的源代码,它提供了Java编程语言的基本功能和类。src目录结构通常按照包的层次结构组织,每个包对应一个文件夹,而每个类则在相应的包文件夹中以.java文件的形式存在。目录结构-com--sun-java--applet--awt--beans--io--lang--mat......
  • 组合式api-侦听器watch的语法
    和vue2对比,也是语法上稍有不同。监听单个数据对象<scriptsetup>import{ref,watch}from"vue";constcount=ref(100)//语法:watch(响应式数据对象,(newVal,oldVal)=>{业务处理...}//只监听单个数据//watch(count,(newValue,oldValue)=>{//console.l......
  • 处理img 变形的问题
    图片被挤压变形了给img添加 object-fit:cover;之后 ......