0%

UseEffect

useEffect 是进行批量顺序执行的。

如果两个连着的 useEffect 则是会顺序执行。

test demo:

const { useEffect, useState } = React;
const TestComponent = ({
  parentConfig
}) => {
  const [ isShow, setIsShow ] = useState(false);
  const [ config, setConfig ] = useState({});
  useEffect(() => {
    setConfig(parentConfig)
    setIsShow(false)
    console.log('first: ', isShow, parentConfig)
  }, [parentConfig])
  useEffect(() => {
    setIsShow(Object.keys(config).length > 0)
    console.log('second: ', isShow)
  }, [config])
  useEffect(() => {
    console.log('update isShow: ', isShow, '=========')
  }, [isShow])
  console.log('render TestComponent');
  return (
    isShow && <div>test</div>
  )
}

function App() {
  const [ parentConfig, setParentConfig ] = useState({a: 1});
  console.log('render App')
  return (
    <div className="App">
      <button onClick={() => setParentConfig(Object.keys(parentConfig).length > 0 ? {} : {a: 1})}>
        switch parentConfig
      </button>
      <TestComponent parentConfig={parentConfig} />
    </div>
  );
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);
阅读全文 »

前端异常监控系统

之前写微信小程序的时候使用的微信小程序自带的实时日志 API ,微信小程序端将错误信息进行上报,可以在微信小程序公众平台上进行查看。

当前公司使用的是 Sentry.io 管理前端异常。需要手动上传当前登录用户的信息和错误信息。然后在 Sentry 错误信息管理平台进行查看报错信息和系统性能。

Sentry’s SDK hooks into your runtime environment and automatically reports errors, uncaught exceptions, and unhandled rejections as well as other types of errors depending on the platform.

Sentry 后端系统可以使用 python 进行搭建。

阅读全文 »

组件渲染

什么时候会触发组件渲染

当传入组件的 props 和组件内部 state 更新时会触发组件渲染。

当父组件发生渲染就会触发子组件的渲染,如果是 class 组件则可以使用 React.PureComponent 进行优化,如果是函数组件则可以使用 React.memo 进行优化,减少渲染次数。

值得阅读的文章
阅读全文 »

工厂

工厂通常是一个用来创建其他对象的对象。工厂是构造方法抽象,用来实现不同的分配方案。

工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建的各种类型的对象。这些方法可能接收参数,用来指定对象创建的方式,最后返回创建的对象。

工厂方法模式抽象工厂模式生成器模式,甚至是单例模式都应用了工厂的概念

工厂模式

阅读全文 »

单例模式

单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模式的一种。在应用这个模式时,单例对象的必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。—— 维基百科

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的window对象等。

实现

阅读全文 »

主要是调试 H5 页面。审查各个系统环境下的样式和断点调试。

在Mac OS 上调试

iOS 生态环境调试会很容易。

模拟环境

环境准备
阅读全文 »

相关定义

自适应布局:一套代码,多设备自适应显示。

响应式布局:多套代码,不同设备尺寸范围布局方案不同。

布局样式

弹性盒

阅读全文 »

Vue3.x 官网:https://v3.cn.vuejs.org/

理论

与Vue 2.x版本的比较

Vue2.x 的组织代码形式,叫 Options API,而 Vue3 最大的特点是 Composition API 中文名是合成函数:以函数为载体,将业务相关的逻辑代码抽取到一起,整体打包对外提供相应能力。可以理解它是我们组织代码,解决逻辑复用的一种方案。

其中 setupComposition API 的入口函数,是在 beforeCreate 声明周期函数之前执行的。还提供了 ref 函数定义一个响应式的数据,reactive 函数定义多个数据的响应式等等。

  • 组合式 API 方式组织代码进行业务和逻辑的解耦。
  • 生命周期调用
  • 响应式原理
  • vue 2使用的是 Flow.js ,vue 3使用的是 typescript
阅读全文 »