0%

做移动端项目的时候,页面自适应是永远无法回避的话题。为了实现页面的自适应,现在比较流行的做法是使用rem做单位。今天在给一个vue-cli3脚手架生成的移动端项目做自适应,借助的是淘宝开源的amfe-flexible。

阅读全文 »

最近一边阅读Vue源码,一边复习JavaScript的基础理论知识,前面回顾了JavaScipt中的词法作用域,这篇博客就回顾一下JavaScript中的执行上下文,理解了执行上下文就能更好地理解JavaScript中的作用域与作用域链。在查阅资料的过程中,我发现有一篇译文还不错,所以也就跟着那篇译文的思路回顾了JavaScript中的执行上下文,译文地址:https://yanhaijing.com/javascript/2014/04/29/what-is-the-execution-context-in-javascript/,全文如下:

阅读全文 »

之前给网站部署了Let’s Encrypt的免费SSL证书,但这个证书的有效期是90天,到期的时候需要自己手动续签,否则的话网站会打不开。但是每次都手动续签的话不仅很麻烦而且很容易忘记掉,所以还是借助linux的crontab自动任务靠谱一些。

阅读全文 »

组件系统是Vue中非常重要的一个特性,通过组件的封装,我们可以实现代码的复用以及功能的解耦。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能。在有些情况下,组件也可以是原生HTML元素的形式,以is特性扩展。

阅读全文 »

在上一篇博客中,我们回顾了如何实现对象的深度复制,学习过Java、C++等面向对象的语言的同学应该都知道,面向对象的语言最大的特征就是类以及类的封装性、继承性、多态性。JavaScript是一门基于对象的语言,可以说在JavaScript中一切皆对象,它是基于类的动态语言,本身不提供class的实现,虽然在ES6中引入了class,但是它仍然是基于原型的,JavaScript也可以模拟实现类似Java的继承特性。之前也回顾过JavaScript中的原型与原型链,我们知道通过原型链可以实现对象的继承。每个实例对象都有一个属性proto指向它的原型,它的原型作为对象也有一个proto原型对象,一层一层向上,直到一个对象的原型对象为null,null没有原型,并且是原型链上的最后一个环节。

阅读全文 »

我们在面试或者笔试的过程中,对象的深复制问题经常会被问到,说难不难,说简单也不简单,要弄清楚这个问题,我们首先需要明确的是在JavaScript中的数据类型有哪些,通常分为两大类,一类是基本数据类型,包括Boolean、Null、Number、undefined、String、Symbol,还有一类是复杂数据类型,即Object类型。在这篇博客中,我们主要来回顾一下对象的深度复制,也就是如何实现对复杂数据类型的深度复制。在回顾之前,我们先来看看基本数据类型的复制。

阅读全文 »

说到高阶组件,我们是否立刻就能够想起高阶函数,那什么是高阶函数呢?高阶函数就是接受一个函数作为参数或者以一个函数作为返回值的函数,高阶组件的定义跟高阶函数很类似,高阶组件即是接受一个组件作为参数,并返回一个新的组件的组件。这篇博客我想探索一下Vue高阶组件,但是由于Vue高阶组件并不常用,高阶组件在React生态里使用比较广泛,所以在这里我先回顾一下React高阶组件。

阅读全文 »

说到基础知识,其实很重要,在面试的过程中也基本都会被问到。俗话说,万丈高楼平地起。没有足够扎实的基础,是不可能筑起高楼大厦的。所以为了巩固自己的基础知识,我决定对JavaScript的各个知识点进行深入理解和总结,今日要回顾和探索的是原型与原型链。

阅读全文 »