Skip to content

Latest commit

 

History

History
179 lines (117 loc) · 3.65 KB

今日之事.md

File metadata and controls

179 lines (117 loc) · 3.65 KB

今日之事

复习算法,算法打卡,提交GitHub

复习前端,总结前端,

未完成之事

1.vue懒加载组件
2.扫描枪博客
3.hugo评论和友链
4.前端压缩文件上传,https://segmentfault.com/a/1190000010934481,https://www.zhihu.com/question/394204941
5.https://umijs.org/zh-CN/docs/ssr ssr框架 阿里
6.https://leetcode-cn.com/problems/hamming-distance/solution/yi-ming-ju-chi-by-leetcode/ 布莱恩算法
7.回溯法 https://leetcode-cn.com/problems/permutations/solution/hui-su-suan-fa-xiang-jie-by-labuladong-2/

2020-5-12

算法

50. Pow(x, n)

2. 两数相加(进位)

543. 二叉树的直径

437. 路径总和 III

1. 两数之和

前端

了解了一下媒体查询+百分比实现自适应

英语

bring up 培养

bring down 降低

2020-5-13

配置了picgo,学到了一个linux指令which

算法

最长回文字符串,学到一个expand的方法

复习了二叉树反转

前端

学了一种函数式生成vue组件的方法

试着用了一下deepl作为翻译工具,就是右下角弹窗有点烦

2020-5.14

noting

2020-5.15

NOTHING

2020-5.20

算法

求最大连续子数组乘积,0分割法,dp算法

删除倒数第N个节点

前端

2020-5.21

算法

234,链表反转和中心拓展法,以及寻找链表中点,需要强化基础

2020-7-30 reactHooks

解决了函数式组件没法用状态的痛点

useState

const [text, setText] = useState('这是一句测试')  

createContext、useContext

// 父组件
const AppContext = React.createContext({});
<AppContext.Provider value={{
  username: 'superawesome'
}}>
  <div className="App">
    <Navbar/>
    <Messages/>
  </div>
</AppContext.Provider>
// 子组件
const {username} = useContext(AppContext)

useEffect

useEffect()用来引入具有副作用的操作,最常见的就是向服务器请求数据。以前,放在componentDidMount里面的代码,现在可以放在useEffect()

  • 第一个参数是函数用来执行异步操作
  • 第二参数依赖项,如果变化则执行异步操作
useEffect(()  =>  {
  // Async Action
}, [dependencies])

2020-8-4

typescript

// 接受类型T的参数,返回值为T类型
function identity<T>(arg: T): T {
    return arg;
}

2020-8-10

koa middleware

function compose(middleware) {
  return function (context) {
    // 从第一个中间件开始调用
    return dispatch(0);

    /**
     * 调用指定 index 的中间件,为其传入 next 参数为下一个中间件的 dispatch
     * @param {Number} i 中间件 index
     * @return {Promise} resolve 后意味着上一个中间件 next() 后的代码可以继续执行
     */
    function dispatch(i) {
      // 当前中间件函数
      let fn = middleware[i];

      // 中间件都被调用后
      if (i === middleware.length) {
        return Promise.resolve();
      }

      try {
        // 调用当前中间件,next 参数设置为下一个中间件的 dispatch
        // 程序执行到 await next() 时进入下一个中间件调用
        const ret = fn(context, dispatch.bind(null, i + 1));

        // 将本次调用结果返回给上一个中间件,也就是 await next()
        return Promise.resolve(ret);
      } catch (ex) {
        return Promise.reject(ex);
      }
    }
  }
}

2020-11-16

看响应式原理