自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Android使用EventBus传递事件

EventBus使用过程很简单EventBus官网1.引入// module.app build.gradledependencies { //... implementation 'org.greenrobot:eventbus:3.2.0'}2.创建Eventpublic class MessageEvent { public final String message; public MessageEvent(String message) {

2020-08-05 10:38:57 275

原创 android集成腾讯X5内核

android的各个版本中webview的实现是极度碎片化的,近期的android tv项目就躺枪一波,针对这样的需求,更换webview内核也就成了自然而然的选择。这里展示腾讯x5的内核使用。腾讯浏览服务SDK集成sdk集成有两种方式1.gradle在Module.app的build.gradle文件下的dependencies节点下添加dependencies { // ... api 'com.tencent.tbs.tbssdk:sdk:43903'}然后同步即可

2020-08-01 12:15:40 1122

原创 认识javascript原型链

函数的原型对象JavaScript的函数内部有两个不同的内部方法[[call]]和[[Construct]]在介绍二者之前先说一下函数的原型对象,函数本身有一个原型对象,这个对象用于判定函数的类别。以Object为例:console.log('Object.prototype :>> ', Object.prototype); // Object.prototype :>> {}打印的结果是一个空对象,但如果换一个普通的方法,会发现打印结果有些许的不一样functi

2020-07-25 21:58:53 819

原创 词法分析有限状态机的状态变更

在词法分析的过程中有限状态机的状态是不断发生变化的,其中最麻烦的是保留字的判断,拿强类型语言中的int为例在整个推到过程中需要涉及i --------> id_Int1n --------> id_Int2t ---------> id_Int3(空白符) ---------> int四个阶段,其中任意一个阶段只有严格符合预期才能进入下一个阶段,而一旦与预期不符,马上将其视为id。且此时token的类型可以确定为id类型。而保留字只有在所有的条件都符合时才能确定tok

2020-07-11 22:55:09 350

原创 webpack核心概念

entry打包流程的开始需要一个入口,用于指定webpack的打包起点,webpack会从入口开始处理工程依赖,构建模块(module)之间的依赖关系树,这些依赖关系模块在打包时被webpack封装为chunk,随后webpack会将chunk打包为bundlecontext资源入口的路径前缀,在配置时要求必须使用绝对路径。module.exports = { context: path.join(__dirname, './src'), entry: './index.js'}conte

2020-06-22 10:30:35 128

原创 使用webpack构建项目-基础配置

初始化项目npm init执行后根据命令行提示修改各项内容。添加webpack依赖这里使用yarn来进行包管理yarn add webpack webpack-cli --dev其中 webpack和webpack-cli为webpack的基础依赖,--dev表示我们需要将这两个包添加到 package.json的 devDependencise节点下。可以使用以下指令验证webpack是否安装成功。npx webpack --version...

2020-06-16 08:23:04 216

原创 react获取children的ref

作为容器组件,接收来自props中的children并进行布局分配是常规需求,但如何获取children的ref呢。其实可以使用React.cloneElement()来实现该需求, 这里以单节点为例:const child = React.Children.only(this.props.children);const newChild = React.cloneElement(child, { className: classNames( 'new-child', child.prop

2020-05-15 10:20:27 3281

原创 Rollup从入门到入坑(4)完善打包环境配置

好的环境配置不仅可以提高效率减少错误的产生,更能够约束所有的参与人员。使用prettier进行代码格式化.prettierrc.json{ "printWidth": 80, "semi": true, "singleQuote": true, "trailingComma": "all", "arrowParens": "always", "tabWidth": 2...

2020-03-22 18:47:49 1263

原创 DBeaver报错Unable to load authentication plugin 'caching_sha2_password'. Unable to load authentication

使用连接Mysql时报错Unable to load authentication plugin 'caching_sha2_password'. 问题的原因大多说mysql的密码认证调整,但其实DBeaver并不是只有一种Mysql的连接选项 切换至数据库选择页面 选择MySQL8+版本下载驱动,测试连接会提醒Public Key Retrieval is not allowed....

2020-03-16 15:58:14 1512

原创 Rollup从入门到入坑(3)发布到npm

严格来说,将包发布到npm并不是Rollup的事情,但发布到npm却是最容易实现代码复用的方法。修改功能将代码修改为计算目标时间距离当前时间大致时长的功能。代码如下// src/main.jsimport ms from 'ms';import targettime from './targettime';import millisecondUtil from './millisenc...

2020-03-11 22:06:11 589

原创 Rollup从入门到入坑(2)引入第三方库

到目前为止,我们已经可以使用Rollup编译本地代码,但有些时候,借助社区的力量可以使我们的程序编写更高效。以ms为例引入第三方模块npm i -s ms修改src/index.js// src/index.jsimport ms from 'ms';export default function hourToSeconds(hours) { return ms(`${h...

2020-03-10 21:48:40 5475 2

原创 配置vscode的搜索选项

vscode的默认配置会搜索一些无效的选项,当内容过多时可能会引起卡顿甚至崩溃,因此需要将不重要的文件从搜索选项中忽略。在settings.json根节点下添加 search.exclude{ "search.exclude": { "**/node_modules": true, "**/bower_components": true, ...

2020-03-10 16:19:32 4355

原创 Rollup从入门到入坑(1)

把代码从文件编译到命令行并没有任何用处,本节将通过Rollup的基本参数将代码编译到文件系统。

2020-03-10 07:51:04 1358

原创 Rollup从入门到入坑(0)

概述什么是RollupRollup是一个JavaScript模块打包器,可以将小块代码编译成大块复杂的代码,例如library或应用程序。Rollup对代码模块使用ESM模块格式,ESM最终会由浏览器原生实现,但当前Rollup可以让你提前体验。关于前端模块请参照安装Rollup全局安装npm i -g rollup开发安装npm i -D rollup查看当前安装的Rol...

2020-03-09 21:15:08 211

原创 前端模块分类

前端模块化概述模块作为现代化编程的基础复用单元,在"搬砖"的日常工作中可以起到明显的加速作用。随着前端工程化的不断完善,模块将在前端扮演越来越重要的角色。当前的模块系统大体分为iife、cjs、amd、umd、esm、systemiife(Immediately Invoked Function Expression)即立即执行函数,是最早的模块编写方式,格式如下(function ()...

2020-03-09 17:24:57 1278

原创 ubuntu19.10 重复登录bug

最近安装了ubuntu19.10版本,发现在重启之后页面会卡死在登录页面,即使输入密码后仍然会闪动一下返回登录页面。解决方案目前通过更换gdm可以解决该问题步骤如下:1.登录命令行ctrl+alt+F2,输入账号密码2.编辑/etc/default/grub将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"修改为GRUB_CMDLINE_LINU...

2020-02-04 07:43:22 511

原创 hello TypeScript env

全局安装typescriptnpm i -g typescript全局安装ts有利于方便的使用调用npx tsc -h可以查看tsc的帮助选项,选项中的大部分功能都可以通过配置文件设置,配置文件可以通过命令生成npx tsc --init// 成功后输出// message TS6071: Successfully created a tsconfig.json file.此时可...

2019-11-09 11:10:24 313

原创 控制node版本

口头约定的node版本并不能保证所有人在所有时间都能遵守规则,但用代码控制不一样,像一个毫无情分可言的杀手,发现可乘之机立即结束进程,干净利落(有点中二)。使用Semver跟目录下创建checkversion.jsconst semver = require('semver');const { engines } = require('./package');const version...

2019-11-09 08:58:18 317

原创 TDD测试模块

Jest测试实例1.describe用来描述一个测试用例的作用细节describe('hello world', () => { // ... 用来填写一个个测试用例})若仅生命以上部分,则会导致测试失败Your test suite must contain at least one test.2.itJest测试的基础单元it('unit test describe...

2019-10-31 11:27:27 656

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除