Xbox One手柄改TypeC尾插

本次改装按照Foundries大佬的教程搞得,附带一些个人心得

准备的工具和材料

  • 贴片式Type C 16Pin 母口
  • 热风枪(没有可以用打磨笔+电烙铁慢慢搞)
  • 电烙铁,焊锡,助焊剂
  • 六角螺丝刀(T6用于拆主板螺丝,外壳螺丝需要专用的防盗螺丝刀拆)
  • 30AWG跳线
  • 打磨笔(有更好,没也行)
  • 镊子
  • 5.1k ohm电阻*2(触发PD快充需要,最好准备0805,0603各一颗)
  • 0.1mm漆包线
  • M121.5螺丝两颗(可选,主要是固定尾插用)
  • AB树脂结构胶(可选)
  • 光固化绿油和固化灯
  • 聚酰亚胺胶带
  • 万用表
阅读全文

解决puppeteer依赖chromium内核下载失败问题

  1. 本地可使用代理魔法上网安装

  2. 服务器安装
    配置puppeteer环境变量,使用国内镜像源下载

ps: v20.1.1(2023-05-05)版本更新 PUPPETEER_DOWNLOAD_HOST 环境变量改为 PUPPETEER_DOWNLOAD_BASE_URL

1
2
3
4
5
# v20.1.1之前版本
npm config set puppeteer_download_host=https://npmmirror.com/mirrors/

# v20.1.1以及之后版本
npm config set puppeteer_download_base_url=https://npmmirror.com/mirrors/

通过node调用Jenkins API完成构建过程

前言

项目中使用jenkins挺久了,每次发布测试环境代码都需要手动去jenkins上发布,特别麻烦,想到两种解决方案,一种是通过CI/CD持续集成,一种是通过jenkins API调用配制好的job。

  • 第一种方案需要触发,还要推送代码到指定分支,不能完美解决目前的痛点。
  • 第二种方案灵活配置,手动触发,在需要的时候构建,可以解决目前的痛点。

本文就讲解如何通过API完成测试环境的构建工作,生产环境不推荐这样做,生产环境一般都有严格的上线流程和权限控制。

image-20230831200429836

阅读全文

微前端方案对比

什么是微前端

微前端类似微服务,并不是指某一具体的技术,而是一种整合了技术、策略和方法的宏观架构方案,是一种将多个可独立交付的小型前端应用聚合为一个整体的架构风格。

为什么选择微前端

微前端主要解决了两个问题:

  1. 项目迭代导致巨石应用,难以维护

  2. 兼容历史应用,实现增量开发

阅读全文

手写call、apply、bind与this指向问题

本文给大家介绍更完善的手写方法

虽然手写call,apply,bind网上已经大把大把的文章,且本身知识点比较集中,但是网上的大部分方法都会有这样或者那样的问题,并不完善

本文带大家从另一个角度,更加完善的理解、学习如何手写call、apply、bind

一、用法与区别

  1. call:

    call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。

  2. apply:

    apply() 方法调用一个指定 this 值的函数,以及以一个数组(或一个类数组对象)的形式提供的参数。

  3. bind:

    bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。

阅读全文

代码可读性

对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率。代码的字里行间流淌的是软件生命中的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升质量意识。 ——《阿里巴巴开发手册》

阅读全文

Vue源码之init

1.Vue

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// src/core/instance/index.js
function Vue (options) {
if (process.env.NODE_ENV !== 'production' &&
!(this instanceof Vue)
) {
warn('Vue is a constructor and should be called with the `new` keyword')
}
this._init(options)
}

initMixin(Vue)
stateMixin(Vue)
eventsMixin(Vue)
lifecycleMixin(Vue)
renderMixin(Vue)

export default Vue
阅读全文

new Vue()的过程

Vue: vue@2.6.14

  1. 'core/instance/index',定义Vue
    • initMixin给Vue的原型定义_init
      • _init 属性的初始化
        • mergeOptions合并参数
        • initLifecycle初始化挂载生命周期相关属性
        • initEvents初始事件相关属性,当父组件绑定到子组件时,供子组件调用
        • initRender初始化slot插槽
        • callHook(vm, 'beforeCreate') 生命周期调用
        • initState 初始化data/method/computed/watch
        • initProvide 初始化provide
        • callHook(vm, 'created') created生命周期调用
        • $mount 调用mountComponent
阅读全文