hahaFck
ONLINE

hahaFck

V2EX 第 281438 号会员,加入于 2018-01-10 16:47:56 +08:00
今日活跃度排名 4890
react 这种组件化设计框架,怎么能拿到子组件的值呢?
React  •  hahaFck  •  12 小时 58 分钟前  •  最后回复来自 hahaFck
60
想入手 studio display 的话,支架选择哪个版本呢?
Apple  •  hahaFck  •  140 天前  •  最后回复来自 pricky777
11
显示器 4K 和 5K 的视觉感官区别大么?
Apple  •  hahaFck  •  141 天前  •  最后回复来自 sean419
37
hahaFck 最近回复了
12 小时 58 分钟前
回复了 hahaFck 创建的主题 React react 这种组件化设计框架,怎么能拿到子组件的值呢?
@RRRSSS 嗯嗯,是的,考虑的太多就把事情弄复杂了。
@Lesenelir 我在看看你的博客理解一下
@Lesenelir 你的回答我看了,如果在 Page 里面调用同一个 atom ,能够拿到 grid 的数据,但是 grid 在 re-render 时候也会导致 page 整个组件的 re-render ,那比较好奇的是刷新是谁导致的,是 grid 在调用 setatom 的时候导致了 page 的 re-render ,那么 page 在 re-render 时不会再一次导致 grid re-render 吧,这样 grid 就导致了 2 次 render
@RRRSSS 看了你提供的代码我有几点疑问,因为我没用前端工程化方式做过项目,还是以前那种 jquery 的开发经验,所以我想问:
1. 对象作用域
// 定义 atom
export const dataAtom = atom('')
这个应该是在单独一个文件定义的对象并导出,然后我在 page 和 grid 等不同的文件导入的时候,应该导入的是同一个对象吧?是不是可以理解 dataAtom 是一个类似于定义在 window 对象的单例,在整个浏览器页面访问他都是同一个对象。

2.grid 共享数据
Grid 组件我是想通过传递一个 URL 和 List<Column>给 Grid 组件,同时 grid 的 list 数据是通过你提供的那个方法( const [data, setDataA] = useAtom(dataAtom))定义的 data 变量,组件在挂载后通过 useEffect 函数,请求 url 来获取 data(List 数据),并通过 setDataA 来更新 grid 的 data 变量,组件重新渲染,那么在调用 setDataA 的时候,Page 组件也会更新么?也会重新渲染么,直观理解应该是只有 grid 重新渲染,展示列表数据。

3.Page 获取数据
page 里面通过 const [data, setDataA] = useAtom(dataAtom),拿到的这个 data 应该也是 grid 里面的 data ,是不是可以理解无论在哪个文件调用[data, setDataA] = useAtom(dataAtom)这段代码时,拿到都是同一个 data 和 setDataA 。
@superedlimited
@jinliming2
是的,我的思路还是停留在以前那种对象的写法,就是组件自己提供 api 给外面调用,而 react 的思想是通过输入(prop)来产生输出,数据应该是通过父组件来传过来的。
@Histo
@zbinlin
如果用 context 的话,useContext 的代码就要硬编码到 grid 组件中,这样这个组件也不通用了吧,放到另外页面的 context 里面又要重新写一份。
灰尘倒是有,但是没有漏光
@Goooooos 是的,fix 的还挺快
@magicdawn #22 对,是 github dark
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5658 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 01:40 · PVG 09:40 · LAX 18:40 · JFK 21:40
Developed with CodeLauncher
♥ Do have faith in what you're doing.