V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  llej  ›  全部回复第 1 页 / 共 2 页
回复总数  40
1  2  
3 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@pursuer 很棒,不过这类方案都是有较大的局限性,zone.js 也有 bug (笑
3 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@netabare zone.js 确实是歪路,angular 的项目中大量使用了,我记得有一些 bug ,并且存在性能问题

代数效应我也不太懂,只是发现他和 cls 都能解决我的需求
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@galenjiang 是的,你描述的比我清晰多了,所以这样最后还是绕回了显式传递参数
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@galenjiang 你说的这个异步解决办法是有效的,但这就导致了你的 useConfig 无法被随意组合了,因为组合后又需要像这样包裹一层来调用,等于有了某种传染性
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@galenjiang 不是说 useConfig 很难,而是说这样组合起来到处随便用很难,他只能在组件创建的时候用。

setTimeou 以及请求等异步调用的回掉中是不能使用 inject 的,因为异步执行的时候他没法判断是在那个组件的调用栈中,进而无法找到对应组件树提供的值
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@galenjiang 另外 metadata 还有装饰器这些东西我总感觉有点画蛇添足
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@galenjiang 你可以看下我 4 楼和八楼的回复,另外你的说法我是认可的
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@nomagick 一边玩去吧,你的理解没错,我只是在讨论一些稍有不同的情况
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@netabare 嗯,依赖注入其实不是问题,但是想要组合式的使用依赖注入(例如 vue 中定义一个 cont use
Config=()=>inject("config
") 然后随意的在任意地方使用这个 useConfig 都能正确的注入值是很难的,需要 cls 或者代数效应这样的方案
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@subframe75361 异步调用这块我之前我忘记写了,正是因为异步这个问题的存在才导致只能使用妥协的办法:传递上下文变量
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@subframe75361 没仔细了解过他的实现,猜测应该和 vue 差不多吧,就是在即将执行组件初始化函数之前将上下文设置为一个全局变量,于是组件函数执行的时候就可以获取到那个上下文,问题就是组件函数内异步调用是不行的,例如 vue 组件 setup 模式 中使用 settimeout 延迟过一会再使用 inject() 就会失败,但如果浏览器也支持 cls 的话,就可以实现异步调用也能获取正确的值
6 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考-二
@kk2syc 具体是指什么,react 和 vue 他们的 hook ?
这样是没法解决异步函数调用的问题的
19 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考
@importmeta 但这些都是基于类的,我最想要的是基于函数调用的。
19 天前
回复了 llej 创建的主题 程序员 对于依赖注入的思考
@icode1688 但这些都是基于类的,我最想要的是基于函数调用的。
161 天前
回复了 llej 创建的主题 JavaScript 如何实现一个小体积的 js docker 镜像
@povsister node 启动所占用的内存是不会随着分层减少的
161 天前
回复了 llej 创建的主题 JavaScript 如何实现一个小体积的 js docker 镜像
@rocmax 这个的优势在于微小程序,能用 node 最好
220 天前
回复了 xpa 创建的主题 程序员 阿里的 OSS 文档好乱
使用它的新版 api 控制台可以自动生成对应代码,还行
思源笔记+1 ,完美符合
253 天前
回复了 wh469012917 创建的主题 云计算 阿里云的技术售后,真的是一言难尽
阿里云的文档烂是出了名的,不过他们最近搞得那个 api 代码自动生成还能用
1panel 面板支持
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   955 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 22:53 · PVG 06:53 · LAX 14:53 · JFK 17:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.