4.4 Sensors -- useDevicePixelRatio

2024-09-05 09:28

本文主要是介绍4.4 Sensors -- useDevicePixelRatio,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4.4 Sensors – useDevicePixelRatio

https://vueuse.org/core/useDevicePixelRatio/

作用

动态追踪devicePixelRatio的变化。

window.devicePixelRatio = 物理像素/ 设备独立像素。

没有可以监听 window.devicePixelRatio 变化的事件监听器。因此,函数以编程方式,使用媒体查询(window.matchMedia)来实现。

官方示例

import { useDevicePixelRatio } from '@vueuse/core'export default {setup() {const { pixelRatio } = useDevicePixelRatio()return { pixelRatio }},
}
  • 无渲染组件代码如下:
<template><UseDevicePixelRatio v-slot="{ pixelRatio }">Pixel Ratio: {{ pixelRatio }}</UseDevicePixelRatio>
</template>

源码分析

一般情况下,我们不需要监听pixelRatio的变化。

export function useDevicePixelRatio({window = defaultWindow,
}: ConfigurableWindow = {}) {if (!window) {return {pixelRatio: ref(1),}}const pixelRatio = ref(1)const cleanups: Fn[] = []const cleanup = () => {cleanups.map(i => i())cleanups.length = 0}const observe = () => {pixelRatio.value = window.devicePixelRatiocleanup()/*** window.matchMedia 查询一个媒体查询字符串,并返回一个MediaQueryList对象,表示媒体查询的结果。* resolution是一个媒体特性,用于查询设备的分辨率* pixelRatio.value 当前设备的像素比* media = {* 	matches: true,*		media: "(resolution: 1dppx)"*		onchange: null* }*/const media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`)// once 表示只监听一次,因为触发了observe会重新注册media.addEventListener('change', observe, { once: true })cleanups.push(() => {media.removeEventListener('change', observe)})}observe()tryOnScopeDispose(cleanup)return { pixelRatio }
}

这篇关于4.4 Sensors -- useDevicePixelRatio的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138572

相关文章

ubuntu16.04 下 android 4.4.4 源码编译

文章目录 环境依赖编译过程问题1、MODULE.TARGET.SHARED_LIBRARIES.xxx already defined by xxx2、make: **** No Rule to make target "hardware/qcom/sm8150p/Android.mk" Stop 编译成功结果参考 环境依赖 java: 1.6make:3.81python:2.

exec: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found

ubuntu 使用arm-linux-gcc提示,明明工具存在,而且环境变量也设置好了 /opt/FriendlyARM/toolschain/4.4.3/bin//arm-linux-gcc: 15: exec: /opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found   file /opt/

Ubuntu 12.04系统交叉编译开发工具的安装(arm-linux-gcc-4.4.3都一样)

在韦东山《Linux开发使用手册》光盘中的tool目录下找到交叉编译的工具包arm-linux-gcc-4.4.3.tar.gz,安装步骤: 1、解压交叉编译开发工具包        sudo tar xvzf arm-linux-gcc-4.4.3.tar.gz -C /       解压工具链到根目录,这里的解压目录可以任意指定。系统中会增加目录/opt/FriendlyARM/toolsc

RFC6455-The WebSocket protocol 之五:Opening Handshake 4.2-4.4

参考:http://jinnianshilongnian.iteye.com/blog/1898350 4.2 Server-Side Requirements 服务器端的要求 Servers MAY offload the management of the connection to other agents    on the network, for ex

Nexus5安卓4.4关闭环聊短信的教程,代替原生环聊功能强

http://bbs.hutoufeng.net/forum.php?mod=viewthread&tid=5234&page=1&extra=#pid6076 第五代Google Nexus系列智能手机,由Google公司进行产品设计,第三方厂家LG代工生产,搭载Android 4.4 kitkat系统。于2013年万圣节发布。对于Nexus5手机的使用我想说有些用户还不是很清楚搭载安卓

4.4 bps 拯救小哈

题目: 代码: #include<stdio.h>#include<stdlib.h>#include<string.h>//只有一个路线,没有深度优先的分支!!!//节点法创建顺序队列//节点typedef struct note{int x;int y;int s;}note;int main(){int i,j,k,n,p,q,tx,ty,flag,book[51][5

Apache Impala 4.4.1正式发布了!

Impala 4.4.1是一个维护性发布,主要修复Impala 4.4.0的一些问题。下面简要列举一些改动,完整的ChangeLog可参考 https://impala.apache.org/docs/changelog-4.4.1.html Impala 4.4.0的新功能可参考上一篇文章:Apache Impala 4.4.0正式发布了! 安装包下载 这次版本发布提供了RPM/DEB安装包

4.4、Django - URL之URL传参给视图(一)

1、为什么要在URL中传递参数? 参数,意味着在url中不固定,如果是写死固定的话,就不需要了 。 下面两幅图,显示的是前面部分相同的豆瓣的文章链接,只有后面的id不一样 。 在APP为douBook下的views.py中: from django.http import HttpResponsedef book_info(request):return HttpResponse("图书

vueUse库Sensors模块各函数简介及使用方法---中篇

vueUse库是一个专门为Vue打造的工具库,提供了丰富的功能,包括监听页面元素的各种行为以及调用浏览器提供的各种能力等。其中的Browser模块包含了一些实用的函数,以下是这些函数的简介和使用方法: vueUse库Sensors模块各函数简介及使用方法 vueUseSensors函数1. useFps2. useGeolocation3.useIdle4.useInfiniteScroll

Android 4.4.2 系统源码字体库精简、添加

字体加载原理 首先先来阐述一下Android的字体加载原理,Android系统的字体配置文件位于workspace/frameworks/base/data/fonts/ 文件夹下,分为 system_fonts.xml 和 fallback_fonts.xml 两个文件。当系统需要加载字体时,会优先从 system_fonts.xml 文件开始查找,如果没有找到再进入 fallback_fon