打造前端利器之移动端适配以及代码素养

180 阅读2分钟

前言:

上一篇文章我们介绍了BEM命名和stylus,这篇文章我们来介绍移动端适配。随着移动互联网的快速发展,移动端适配成为前端开发不可或缺的一环。在本文中,我们将深入探讨阿里的适配神器flexible.js以及一些移动端适配的实践经验。同时,我们将关注代码素养,通过一些优雅的设计模式和技巧,提升前端开发的质量和效率。

1. 移动端适配与flexible.js介绍:

移动端适配的核心是实现在不同设备上的页面显示一致性。阿里的适配神器flexible.js通过将htmlfont-size设为屏幕宽度的十分之一,以remvwvh等相对单位替代px,实现了简单而有效的适配。

"g.tbcdn.cn/mtb/lib-fle…"这是阿里的适配神器链接,可以直接用script导入使用

接下来我们来手写这个代码,以下是一个flexible.js的基本实现:

(function () {
    var width = document.documentElement.clientWidth;
    var fontSize = width / 10
    document.documentElement.style.fontSize = getfontsize() + 'px'

    window.addEventListener('resize', function(){
        var width = window.innerWidth;   //获取浏览器宽度的另一种写法
        var fontSize = width / 10;
        document.documentElement.style.fontSize = getfontsize() + 'px';
    })
})();

设计window监听是为了防止手机横屏,以便随时适配

2. 代码素养:设计模式与DOM性能优化:

观察一下上面的代码,其实你会发现很多问题,比如代码冗余,无法实现代码复用等,接下来我们一步一步来剖析,首先最明显的就是重复代码,基本上代码都是重复的,切记,DRY don't repeat yourself 不要写重复代码。其次就是document.documentElement执行了三遍,DOM编程性能开销非常大,可能你会觉得这能有多大,就这么几行代码而已,但如果是在大型商用软件上要执行几千次几万次呢?这就体现出我们的开发素养了,所以要从现在就开始培养,下面是优化后的代码:

 (function() {
            var htmlElement = document.documentElement   //这样只需要查找一次,减少了开销
            function getfontsize(){    //代码优化,封装成函数,以便复用
                var width = htmlElement.clientWidth;
                var fontSize = width / 10
                return fontSize
            }
            htmlElement.style.fontSize = getfontsize() + 'px'
            window.addEventListener('resize', function(){
                htmlElement.style.fontSize = getfontsize() + 'px'
            })
        // html动态设置font-size
        })()

3. 加强代码素养:Scripts标签的位置:

在HTML中,<script>标签的位置对页面性能有一定影响。通常,将<script>标签放在头部,确保在渲染页面之前加载并执行,一般放在css样式前面。然而,需要注意同步执行可能会阻塞HTML的下载进程。

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>demo</title>
    <script src="./base.js"></script>
    <link rel="stylesheet" href="./common.css">
</head>

通过灵活运用移动端适配工具和提高代码素养,我们能够更高效地开发前端应用。适配神器flexible.js为移动端适配提供了简便而有效的解决方案,而优秀的代码素养则是高效团队协作和可维护性的基石。希望这些技术和实践能够帮助你在前端开发的道路上越走越远。