# 2019.03.11

[文章] 微软今天在 GitHub 上提供了其 Windows 计算器的源码,授权协议为 MIT License,提供了产品路线图,目的是希望与社区合作建立更好的用户体验:https://github.com/Microsoft/calculator (opens new window)

[文章] 前端架构杂思录:议 Function Component 与 Hooks:http://taobaofed.org/blog/2018/11/27/hooks-and-function-component/ (opens new window)

[工具] ArchiveBox 是可以把网站永久性存档,存储格式可选 HTML、PDF 等,方便在网站更换域名或关闭的情况下回顾历史,Docker 版说明:https://github.com/pirate/ArchiveBox/wiki/Docker (opens new window)

[资源] 一个用动态图片,帮助你理解算法的一个网站:https://visualgo.net/zh (opens new window)

[类库] 一个 SVG 颜色选择器(色轮),在线演示[https://iro.js.org/]:https://github.com/jaames/iro.js (opens new window)

# 配图 - 微软计算器

# 配图 - ArchiveBox

# 配图 - 在线学习算法

# 配图 - 色轮

# 示例 - Function Component 与 Hooks

import { useState, useContext, useEffect, createContext } from 'react';
const FooContext = createContext('foo');
const BarContext = createContext('bar');

function Hey(props, context) {
  const [name, setName] = useState('yiyi');
  const [emoji, setEmoji] = useState('😊');

  const foo = useContext(FooContext);
  const bar = useContext(BarContext);

  const handleClick = () => setEmoji('😢');

  useEffect(() => {
    console.log('componentDidMount or componentDidUpdate');
    return () => {
      console.log('componentWillUnmount');
    }
  }, [name]);

  return (
    <>
      <span onClick={handleClick}>Hey {name}, {emoji}</span>

      <FooContext.Provider>
        <BarContext.Provider>
          {foo}, {bar}
        </BarContext.Provider>
      </FooContext.Provider>
    </>
  )
}
Last Updated: 3/11/2019, 10:17:57 AM