gpt4 book ai didi

javascript - Mithril js,m.request()循环和concat数组有什么好的方法吗?

转载 作者:行者123 更新时间:2023-11-30 00:19:11 24 4
gpt4 key购买 nike

见下文。

首先,脚本从 Github API 获取 4 个项目并呈现一个列表。如果您提交“NEXT”按钮,脚本会在重新发送 Get 请求后重新绘制列表。

GET 请求。

repo.Repo.getList = function (api) {
return m.request({
method: "GET",
url: api,
type: repo.Repo,
extract: repo.linkHeader.setLinkHeader,
initialValue: []
})
.then(function (data) {
// bad solution.
return repo.vm.list(repo.vm.list().concat(data));
});
};

连接数组。

repo.vm.api(links['next'])
return m('button', {onclick: repo.vm.add}, 'NEXT');

它按预期工作。但是,这是糟糕的解决方案,不是吗?我认为这个 concat 过程应该在 View-Model (repo.vm) 中完成。

有什么好的方法吗?或者这样就可以了吗?

最佳答案

view 方法中修改东西并不理想。将 View 视为一个模板,它应该只显示状态,因为重绘可以很快发生。相反,您应该让 Controller 执行请求,并在请求完成时修改状态。然后将显示该 View 。

在代码方面,我认为您对“太多结构”有点深入。有 View 模型、LinkHeader 原型(prototype),程序流程到处跳转。心智模型非常简单,因此请保持这种状态,而不是进入只会让事情变得抽象和复杂的模式。

这是我的看法:https://jsfiddle.net/ciscoheat/akwdqhpx/

解析器是一样的,但在那之后我尽量保持代码的压缩和本地化,这样你就可以看一部分代码并理解它。这是一篇关于 locality and cohesion 的非常好的文章.我还更改了一些名称以更贴近心智模型。

关于javascript - Mithril js,m.request()循环和concat数组有什么好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com