dvajs / dva

🌱 React and redux based, lightweight and elm-style framework. (Inspired by elm and choo)
https://dvajs.com/
MIT License
16.24k stars 3.17k forks source link

为什么根的元素是 <Unknown /> , 有办法去掉吗 ? #1563

Closed billgo closed 6 years ago

billgo commented 6 years ago

说实话虽然这个并无大碍,但是这样看起来总觉得怪怪的,有什么办法可以去掉 这个根节点。

xiongchen2012 commented 6 years ago

我也发现了,逼死强迫症系列。

woshiguabi commented 6 years ago

<Unknown />是SFC组件,为了提升性能

sorrycc commented 6 years ago

@woshiguabi SFC 是啥?

woshiguabi commented 6 years ago

@sorrycc Stateless Functional Component..... 因为dva源码中是直接export了一个SFC所以导致在devtool中显示为<Unknown />

不过因为是根组件所以不会重新渲染,可以考虑换成class?

billgo commented 6 years ago

@woshiguabi 你的意思是说如果 export 的时候使用了 class 的类,那么就不会显示成 了是吧,那我尝试改动一下源码看看。直接 export 无状态组件大概能提高多少性能呢?这个我之前没有测试过,希望有相关数据分析一下。

woshiguabi commented 6 years ago

@billgo https://medium.com/missive-app/45-faster-react-functional-components-now-3509a668e69f 这篇可以作为参考。 不过对于根组件来说,因为后续的update都与它无关,性能问题基本可以忽略不计

sorrycc commented 6 years ago

@woshiguabi 方便提个 PR 吗?

billgo commented 6 years ago

@woshiguabi 如果是使用了 const 包装的 SFC 按道理应该也是会显示出名字的,除非是 export default () => () 这样输出组件才会是 吧。

const Application = (props) => {
  return <Component />;
}