简单手写实现函数组件的Ref - forwardRef

本文介绍了两种移动端适配方案:rem+flexible和viewport适配,并提及了postcss配置和适配代码的细节。同时,文章还推荐了一份关于Vue开发的详细技巧文档,包含36个知识点。

方案一:rem+flexible

postcss配置
 "postcss": {"plugins": {// 将css文件中的px转换成rem,autoprefixer是加上各种浏览器前缀"postcss-px2rem": {// UI图片的基准值 750px就是75,640px就是64,默认为75 "remUnit": 37.5,"remPrecision": 6, //准换成rem后的小数点精确数位 默认为6 "baseDpr": 2, //基准device pixel ratio值 默认为2 },"autoprefixer": {"overrideBrowserslist": ["Android 4.1","iOS 7.1","Chrome > 31","ff > 31","ie >= 8"]}}},"postcss-pxtorem": {"rootValue": 50, // 根元素字体大小"propList": ["*"]}, 
适配代码
import 'amfe-flexible/index.js'

const baseSize = 100 // 这个是设计稿中1rem的大小。
function setRem () {// 实际设备页面宽度和设计稿的比值const scale = (document.documentElement.clientWidth || document.body.clientWidth) / 750// 计算实际的rem值并赋予给html的font-sizedocument.documentElement.style.fontSize = (baseSize * scale) + 'px'
}
setRem()
window.addEventListener('resize', () => {setRem()
}) 

提示 : 当脱离掉node_modules重新npm install项目依赖时还是需要重新修改一遍的,谨记!

// rem适配
// rem适配原理,改变了一个元素在不同设备上占据的css像素的个数
// 优点:没有破坏完美视口 
// 缺点:px值到rem值到转换太复杂
(function(){
 var styleNode = document.createElement("style");var w = document.documentElement.clientWidth / 16;styleNode.innerHTML = "html{font-size:" + w + "px!important}";document.head.appendChild(styleNode)
})() 

方案二:viewport 适配

/* viewport 适配的原理,viewport适配方案中,每一个元素在不同设备上占据的css像素的个数是一样的,
但是css像素和物理像素的比例是不一样的,等比的。
优点:所量即所得
缺点:没有使用完美视口*/
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width"><title>Document</title>
</head>
<body>

</body>
<script type="text/javascirpt"> (function(){var targetW = 640;var scale = document.documentElement.clientWidth/targetW;var meta=document.querySelector("meta[name='viewport'");meta.content = "initial-scale="+scale + ",minimum-scale="+ scale + ",maximum-scale="+scale+",user-scalable=no";})() </script>
</html> 

最后

最近找到一个VUE的文档,它将VUE的各个知识点进行了总结,整理成了《Vue 开发必须知道的36个技巧》。内容比较详实,对各个知识点的讲解也十分到位。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值