大家好,我是前端西瓜哥。 之前写了一篇关于 JS 中 bind 方法的实现 的文章,并给出了实现: Function.prototype.myBind = function(thisArg, …prefixArgs) {const fn = this;return function(…args) {return fn.call(thisArg, …prefixArgs, …args);}}但没有处理 通过 new 创建实例 的情况。 因为很少会遇到给 bind 返回的函数做 new 操作的场景,所以我没去考虑这种特殊情况。 但面试中还是会涉及到的,我们还是实现一下兼容 new 操作的 bind 写法,蓝狮注册顺便学习一下 new 操作符。 因为存在一定上下文,在阅 ...
蓝狮注册开户脉脉上的 前端三大浪漫 是个啥?
背景今天在 陌陌 脉脉 看到一个帖子,讲到前端 三大浪漫 . 一、富文本编辑器富文本编辑器市面上已经有很多优秀的开源版本了,但是问题在于每个产品的富文本编辑器需求不一样,所以可能导致有一些时候需要手撸编辑器 例如: Draft.jsSlate.jswangEditor这些富文本编辑器还有衍生出他们的针对不同框架的版本,例如react,还有一些插件。感兴趣的可以去github搜索给个star,方便以后用得上 作者当时手写过桌面软件的富文本编辑器(Electron,类似微信的聊天编辑器),蓝狮注册痛苦得很,要控制光标、焦点,复制粘贴,适配 ...
蓝狮注册开户Flutter webview 处理回退历史
在 App 开发中,我们总会遇到使用 WebView 的情况, 比如 我们打开了 网页A,然后点击 A 中的链接跳转到 B。如果这个时候,我们按一下系统的返回键,预期的应该是 返回A,而不是推到一个 Native 页面。 但事实就是,如果你没有经过特殊处理,那么很有可能就不是预期的效果(B –> A)。不过还在我们只需要简单修改代码,就能解决。 再次明确一下,我们的预期 如果 webview 有可以回退的历史,当系统返回按键点击后,蓝狮注册开户进行 webview 历史回退否则执行 系统回退,返回上一个 native界面用到的核心代码WebViewCo ...
蓝狮注册开户用最简的方式学Vuex
一、基础vuex是一个专为Vue.js应用程序开发的状态管理模式,采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,每一个Vuex应用的核心是store(仓库)。蓝狮注册开户为了使用Vuex,首先需要安装该包,执行如下命令完成该安装过程。 npm install vuex@next –save 二、核心概念Vuex中核心概念主要有五个:State、Getters、Mutations、Actions、Modules,每一部分都有自己的功用,下面先来看一段简单的代码,该代码中涉及到了这些核心概念,然后在该代码的基础上进一步理解。 ...
蓝狮注册开户NPM这6个有趣实用的知识点,你知道几个?
一、 啥? npm add 和 npm install 完全等价注意:是完全等价! 如果你试图在 npm 官方搜索 npm add 这个指令,你会发现这个指令似乎根本不存在,如下图: 那我们平时使用的 npm add vue@latest –save 又是什么鬼? 其实, npm add 是 npm install 的 别名 之一,所以当我们执行 npm add 时,蓝狮注册对于 npm 来说完完全全等同于执行了 npm install ! 下次,你可以试试 npm install vue@latest –save 了 如你所知, npm install 还有另一个常见的别名: npm i ; 二、啥? npm isntall 、 npm ins ...
蓝狮注册JavaScript中async和await的使用以及队列问题
async && await概念async使用async关键字声明的函数,是AsyncFunction构造函数的实例,在async函数体内,可以使用await接收promise实例async和await关键字,在开发过程中,可以简洁地去做一些异步操作。awaitawait操作符接受一个Promise 对象,蓝狮注册并且只能和异步函数async function搭配使用。await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。若 Promise 正常处理 (fulfilled),其回调的 resolve 函数参数作为 await 表达式的值,继续执行若 Promise 处理异常 (rejected),await 表达式会把 ...
蓝狮注册vue组件划分的思考
对vue项目来说,组件是构成项目的基本单元,为了方便理解,这里定义两类组件:页面组件,功能组件。为什么需要划分这两类组件是从组件复用来考虑的。 我们知道在复杂应用中,页面状态管理早已不是早期的简单的子父组件的传值,兄弟组件传值。而当我们寻求到vuex这种状态管理来处理组件间状态管理的时候,我们同样也对使用vuex的组件失去了复用的可能。 为什么失去了复用的可能?我们知道是用第三方状态管理就意味着状态丢给了第三方,而我们的组件依赖第三方状态管理的时候,单个组件就不足以仅把组件复用,还必须根据该组 ...
蓝狮注册esbuild 构建油猴脚本
前段时间思否十周年,搞了个问答打卡活动。参与打卡活动的人需要在回答问题的结尾加一个“小尾巴”。加小尾巴本身并不难,但是由于官方没有提供快捷方式,每次都需要自己从某个地方拷贝过去,稍嫌繁琐。正好前不久刚装了油猴插件,就想:自己给编辑器注入一个按钮用来添加小尾巴如何? 在使用油猴之前,使用过一个叫“User JavaScript and css”的插件,可以对特定的网页注入脚本和样式。不过这个插件在 Edge 市场中没有,只能从 Chrome 市场安装,安装有点困难。后来又去 Edge 市场中找到一个“Page Manipulator”也能实现类似的功 ...
蓝狮注册漫谈 CSS 方法论
大家好,我是 CUGGZ。 css 方法论是一种面向 CSS、由个人和组织设计、已被诸多项目检验且公认有效的最佳实践。这些方法论都会涉及结构化的命名约定,并且在组织 CSS 时可提供相应的指南,从而提升代码的性能、可读性以及可维护性。 根据 State of CSS 2020 的调查结果显示,目前使用最多的五种分别为:BEM、ACSS、OOCSS、SMACSS、ITCSS。 下面就分别看看这五种 CSS 方法论! BEMBEM 全称为 Block Element Modifier,分别表示块(Block)、蓝狮官网元素(Element)、修饰符(Modifier),它是由 Yandex 团队提出的一 ...
蓝狮注册如何修改 node_modules 里的文件
前言有时候使用 npm 上的包,发现有 bug ,我们知道如何修改,但是别人可能一时半会没法更新,或者是我们特殊需求,别人不愿意修改,这时候我们只能自己动手丰衣足食。那么我们应该如何修改别人的源码呢?首先,直接修改 node_modules 里面的文件是不太行的,重新安装依赖就没有了。一般常用办法有两个: 下载别人代码到本地,放在 src 目录,修改后手动引入。fork 别人的代码到自己仓库,修改后,从自己仓库安装这个插件。这两个办法的缺陷就是:更新麻烦,我们每次都需要手动去更新代码,蓝狮注册无法与插件同步更新。如果 ...