Webflow – Custom code in head and body tags
If you have a paid Webflow account or if your project has an active site plan, you can add custom code and scripts that apply to your entire site or individual pages. This can be useful for adding additional HTML, CSS, and JavaScript. You can also use the Embed element to add custom blocks of HTML code to your site design or […]
Read MoreWhat is edge computing? Everything you need to know
Source: https://www.techtarget.com/searchdatacenter/definition/edge-computing Edge computing is a distributed information technology (IT) architecture in which client data is processed at the periphery of the network, as close to the originating source as possible. Data is the lifeblood of modern business, providing valuable business insight and supporting real-time control over critical business processes and operations. Today’s businesses are […]
Read MoreHow to Remove Images and Containers in Docker
Docker rmi docker rmi removes images by their ID. To remove the image, you first need to list all the images to get the Image IDs, Image name and other details. By running simple command docker images -a or docker images. After that you make sure which image want to remove, to do that executing this simple command docker rmi […]
Read MoreWhat is polyglot programing
Polyglot programming is the practice of writing code in multiple languages to capture additional functionality and efficiency not available in a single language. The use of domain-specific languages (DSLs) has become a standard practice for enterprise application development. For example, a mobile development team might employ Java, JavaScript, and HTML5 to create a fully functional application. Other DSLs such as SQL (for data queries), XML (embedded […]
Read MoreProxy and Reflect
1. Proxy 1.1 proxy是什么 MDN给出的定义是: proxy对象用于定义基本操作的自定义行为, 例如属性查找, 赋值, 枚举, 函数调用等 proxy捕获对其目标对象进行的调用和操作, 然后可以更优雅的处理这些调用和操作, 它在目标对象周围创建了一个无法检测的屏障, 将所有操作重定向到处理程序对象 基本用法 使用new Proxy()来创建, 该构造函数接受两个必要的参数: 目标对象target和处理程序对象handler @理解: proxy相当于一个黑匣子, 封装对目标对象的处理, proxy的实例对象相当于对外暴露的接口,外部人员对目标对象的操作不再直接作用于目标对象, 而是通过proxy实例对象重定向到proxy内部的处理方法上(像get set等) , 最后再将处理后的最终结果返回给proxy实例 1.2 常用的代理方法 这些代理方法其实就是proxy对原生方法的监听, 然后用内部对应的方法去处理 1.2.1 get方法 可以接收三个参数: 目标对象、属性名、[ proxy实例 ] get方法可以看作是对目标对象取操作的代理 1.2.2 set方法 可以接收四个参数: 目标对象, 属性名, 属性值, [ proxy实例 ] set方法可以看作是对目标对象某个属性的赋值代理 1.2.3 deleteProperty方法 接收两个参数: 目标对象, 待删除的属性名 相当于delete obj.prop 1.2.4 […]
Read MoreVue2.0 vs Vue3.0 in reactive
前言 Vue3.0 的响应式底层是使用了 new Proxy() 对数据的 getter 和 setter 进行了拦截,过程中进行了依赖的收集,如果数据发生了变化,就会通知相应的依赖去做变化。如果了解过 Vue2.0 响应式原理应该就知道,Vue2.0的响应式底层是用 Object.defineProperty 进行实现的。为什么会有如此大的变化?这篇文章将通过学习 Vue2.0 和 Vue3.0 的源码比较两者在响应式实现上的差异。 响应式源码 Vue2.0项目地址 Vue3.0项目地址 MDN Object.defineProperty() Proxy Vue2.0 源码位置 \src\core\observer\index.js 响应式函数 defineReactive,初始化时需要循环频繁调用,因为 Object.defineProperty 每次只能对对象中的一个属性进行拦截操作,并且如果当前属性的值 val 也是一个对象就会调用一个观察者函数 observe(val),为对象创建观察者 观察者函数 observe 中会创建并返回一个 ob 是 Observer 类的实例 Observer 类会执行其中的 walk 方法,walk 会对当前对象进行遍历并继续调用 defineReactive 这样就形成了一个递归调用 到这里就看出了使用 Object.defineProperty 方式进行响应式操作的一些缺点 每次只能监控一个key 初始化时需要循环递归遍历obj中的所有key,速度慢,并且会产生闭包,资源占用比较大 不能对 Collection […]
Read More