第十周
date
Jun 20, 2022
tags
summary
type
Post
status
Published
slug
week-10
VS Code 美化插件:Customize UI
把编辑器中的元素尽量的隐藏,频繁使用的操作使用快捷键,不常用的使用命令面板搜索后调用。
具体的配置字段和值:CustomizeUI - GitHub
Blender 入门
跟着把最基础的选择、移动、缩放等工具玩了一下。3D 建模还是很好玩的呀
在 Svelte 中使用 React 组件
Svelte 简洁的语法写起来很愉快,但 Svelte 社区的轮子肯定是没办法和 React 相比的。工作中有业务需要 Ant Design 的 穿梭框 控件,这就得在 Svelte 中使用 React 组件。之前觉得不同框架之间的组件是存在天然屏障的,他们之间是无法共存或进行交互。看完同事写的 React 适配器(
react-adapter.svelte
)代码后,对这件事有了和之前不一样的理解。- React 的核心是用
React.createElement
创建 React 元素,并使用 ReactDOM.render 来把 React 元素渲染到某个 DOM 元素之中。
- 在 Svelte 组件中拿到 DOM 元素后交给 ReactDOM.render 来渲染
- React 组件需要的 Props 通过
React.createElement(component, props)
传入
react-adapter.svelte
{#if component}
<div use:react style="{$$props.style}"><slot /></div>
{/if}
<script>
import { createElement, useState, useEffect } from 'react';
import ReactDOM from 'react-dom';
import { getLanguage } from '~/utils/language';
import getPrimaryColor from '~/utils/get-primary-color';
import { ConfigProvider } from 'antd';
import cn from 'antd/lib/locale/zh_CN.js';
import en from 'antd/lib/locale/en_US.js';
export let component;
let hook = {};
$: if ($$props && hook.update) {
hook.update({ ...$$props });
}
// 当 Svelte 的组件 Props 变化时,利用 useState 来触发 React 组件的更新。
function Component() {
let [state, setState] = useState({});
let node = createElement(component, {...state});
useEffect(() => hook.update = setState, []);
return node;
}
// 创建 AntD 需要的 Provider ,处理本地化和主题相关的功能
function withConfigProvider(props) {
const locale = ({ 'zh-CN': cn, 'en': en })[getLanguage()];
ConfigProvider.config({
theme: {
primaryColor: getPrimaryColor(),
}
});
return createElement(ConfigProvider, { locale, ...props });
}
// 通过 Svelte 的 use API 拿到 DOM 元素交给 ReactDOM 渲染
function react(element) {
const Node = withConfigProvider({
children: createElement(Component, {})
});
ReactDOM.render(Node, element);
return {
destory() {
try {
ReactDOM.unmountComponentAtNode(element);
} catch(e) {}
}
}
}
</script>
微信读书
开通 “微信读书” 的会员,尝鲜体验一个月试试,主要用途是 AI 听书听一些比较有用,但是沉不下心看的书籍,AI 听书还是蛮有感觉的,就像听播客一样。
Buzzing
用中文浏览国外社交媒体里的热门讨论,目前我的习惯是花半个小时简单过看下标题,除了一些开发相关的信息,还有一些社会性的新闻。
本周看了啥 📺
Xcode 下载新姿势:使用 Xcodes app
在 SwiftUI 專欄 #1 來把 Xcode 搞好 - 13 的 Apple 開發者電子報 中推荐它时提到的优点:
- 它採用 aria2,能夠同時多達 16 個連線,下載速度最大化。在我家的 1000/600 光纖,最高曾經跑到 112 MB/s
- 能夠看到電腦上所有的 Xcode 版本,並顯示所有版本的相容性資訊
- 一鍵切換目前工具鏈的版本,不用自己打
sudo xcode-select -s
- 新版還支援 unxip 測試功能,解壓縮速度最快可達 +70%
这个台湾 iOS 开发者写的免费 SwiftUI 的专栏很值得订阅
补习网络相关的知识
现在上班的公司的是做网络相关的业务(卖 VPN 给企业),日常会接触到很多陌生的网络的名词和概念。加上之前对家庭网络建设这块很感兴趣。这段时间在业余时间会在 Youtube 和 B站看许多网络知识的科普视频。从基础的路由、交换,各层对数据包如何进行的封装处理,算是对整个网络有了更全面的认识。
Clash for windows 的 TUN 模式
之前在 Windows 平台使用 Clash for Windows 是用的系统代理模式,这种模式是无法接管 WSL 系统中的流量。
今天切换到 Windows 系统中,把 Clash 改为使用 TUN 模式,此模式会创建一张虚拟网卡。对于不遵循系统代理的软件,TUN 模式可以接管其流量并交由 Clash for windows 处理(类似于 Surge 的增强模式)
Mobile FIRST - Website Chrome 插件移动端模拟器
检查网站或网络应用的响应性,比 Chrome 开发工具好的一点是它支持40多种设备,而且支持 GIF 录屏、带壳截图
Hover Zoom+
鼠标悬停放大图片,彩蛋 B站悬停还可以播放视频 🤣