第十周

date
Jun 20, 2022
tags
summary
type
Post
status
Published
slug
week-10

VS Code 美化插件:Customize UI

notion image
把编辑器中的元素尽量的隐藏,频繁使用的操作使用快捷键,不常用的使用命令面板搜索后调用。
具体的配置字段和值: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 听书还是蛮有感觉的,就像听播客一样。
notion image

Buzzing

用中文浏览国外社交媒体里的热门讨论,目前我的习惯是花半个小时简单过看下标题,除了一些开发相关的信息,还有一些社会性的新闻。

本周看了啥 📺

Xcode 下载新姿势:使用 Xcodes app

notion image
  • 能夠看到電腦上所有的 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 的增强模式)
notion image
notion image

Mobile FIRST - Website Chrome 插件移动端模拟器

检查网站或网络应用的响应性,比 Chrome 开发工具好的一点是它支持40多种设备,而且支持 GIF 录屏、带壳截图
notion image
notion image

Hover Zoom+

鼠标悬停放大图片,彩蛋 B站悬停还可以播放视频 🤣
 

© Craig Hart 2021 - 2024