我使用React + redux + EJS(带有服务器端渲染)开发了一个应用程序,并且它在生产中运行良好.我已经使用webpack配置配置了SSR + redux和所有代码拆分的东西.我还实现了自定义缓存中间件来缓存SSR渲染的html字符串(根据需要).
现在,我被告知要重构代码以适应next.js框架,并且想知道真正需要它.如果我已经找到了在没有next.js框架的情况下进行SSR的方法,那么使用next.js的主要优点是什么?
我不仅仅是在征求意见,而是试图理解next.js(如果有的话)对CRA的真正利弊.
如果有人需要参考,我已经在这里上传了锅炉板:https://github.com/bbest123/reactreduxssr
我目前正在使用下面的服务器端渲染逻辑(使用reactjs + nodejs + redux)第一次同步获取数据并将其设置为存储中的初始状态.
fetchInitialData.js
export function fetchInitialData(q,callback){
const url='http://....'
axios.get(url)
.then((response)=>{
callback((response.data));
}).catch((error)=> {
console.log(error)
})
}
Run Code Online (Sandbox Code Playgroud)
我异步获取数据并加载输出以在第一次使用回调加载页面时存储.
handleRender(req, res){
fetchInitialData(q,apiResult => {
const data=apiResult;
const results ={data,fetched:true,fetching:false,queryValue:q}
const store = configureStore(results, reduxRouterMiddleware);
....
const html = renderToString(component);
res.status(200);
res.send(html);
})
}
Run Code Online (Sandbox Code Playgroud)
我要求在初始页面加载时进行4到5个API调用,因此考虑检查是否有一种简单的方法来实现在页面加载时进行多次调用.
我是否需要链接api调用并手动合并来自不同API调用的响应并将其发送回以加载初始状态?
更新1: 我正在考虑使用axios.all方法,如果这是一种理想的方法,有人可以告诉我吗?
我有一个树对象如下,我试图删除项数组属性,如果它是空的.我不确定最好的方法吗?
我正在考虑循环键,检查属性,然后删除使用delete myJSONObject[prop]...欢迎任何想法/想法?
[{
text: "TreeRoot",
items: [{
text: "Subgroup1",
items: []
}, {
text: "Subgroup2",
items: []
}, {
text: "Subgroup3",
items: [],
items: [{
text: "subgroup5",
items: [{
text: "subgroup6",
items: [{
text: "subgroup7",
items: [{
text: "subgroup8",
items: []
}]
}]
}]
}]
}]
}]
Run Code Online (Sandbox Code Playgroud) 有人可以让我知道如何连接mule中的多个值?
就像是,
#[payload.getPayload()].concat(#[getSubject()])
Run Code Online (Sandbox Code Playgroud) 好吧,我最初编写了一个简单的代码,根据用户输入从系列中返回斐波纳契数.
n = 5将产生3 ..
static int fibonacci(int n) {
if (n == 1)
return 0;
else if (n == 2)
return 1;
else
return (fibonacci(n - 1) + fibonacci(n - 2));
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑修改代码以返回系列的总和,而不是仅仅返回系列中的值,并且在尝试执行总和时我不小心将1添加到return语句中,令我惊讶的是,它正确地返回了总和.
对于n = 5,以下代码将返回7.
我不确定这是否是计算总和的正确方法......
如果我加1,我仍然无法弄清楚该系列的总和是如何工作的.有人可以解释一下吗?
static int fibonacci(int n) {
if (n == 1)
return 0;
else if (n == 2)
return 1;
else
return (fibonacci(n - 1) + fibonacci(n - 2)+(1));
}
Run Code Online (Sandbox Code Playgroud)
编辑:
对于斐波那契系列.. 0,1,1,2,3,5,8,13,21,34,55,89,144 ....
我尝试了一些随机的n
N = 13
该函数返回376
0 + 1 + …
我试图使用下面的CSS更改数据表中行的颜色.
table.dataTable tr.odd { background-color: #E2E4FF; }
table.dataTable tr.even { background-color: white; }
Run Code Online (Sandbox Code Playgroud)
这种变化似乎不会影响数据表中的第一列,我可以在其他列中看到新颜色.
有人可以告诉我这个问题的原因吗?
我目前正在使用SOLR 4.2来索引地理空间数据(纬度和经度数据).我已将我的地理空间字段配置如下.
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
<field name="latlong" type="location" indexed="true" stored="false" multiValued="true"/>
Run Code Online (Sandbox Code Playgroud)
我只是想确保我使用正确的SOLR类来执行地理空间搜索,因为我不确定未来版本的SOLR将支持哪个2类(LatLonType与SpatialRecursivePrefixTreeFieldType).
我假设SpatialRecursivePrefixTreeFieldType是latlong的升级版本,有人可以确认我是否正确吗?
我目前有一个程序在单线程模式下读取文件(非常大)并创建搜索索引,但在单线程环境中索引需要很长时间.
现在我试图让它在多线程模式下工作,但不确定实现它的最佳方法.
我的主程序创建一个缓冲的读取器并将实例传递给线程,线程使用缓冲的读取器实例来读取文件.
我不认为这可以按预期工作,而是每个线程一次又一次地读同一行.
有没有办法让线程只读取其他线程无法读取的行?我需要拆分文件吗?有没有办法在不拆分文件的情况下实现这个?
样本主程序:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
public class TestMTFile {
public static void main(String args[]) {
BufferedReader reader = null;
ArrayList<Thread> threads = new ArrayList<Thread>();
try {
reader = new BufferedReader(new FileReader(
"test.tsv"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
for (int i = 0; i <= 10; i++) {
Runnable task = new ReadFileMT(reader);
Thread worker = new Thread(task);
// We can set the name of the thread
worker.setName(String.valueOf(i));
// Start …Run Code Online (Sandbox Code Playgroud) 每当我尝试将lcov报告导入SONAR时,我都会收到以下错误
15:00:17.230 WARN: Could not resolve 1 file paths in [/opt/app/workload/jenkins_25172/data/jobs/DEV02/workspace/coverage/lcov.info], first unresolved path: /opt/app/workload/jenkins_25172/data/jobs/DEV02/workspace/common/actions/actionCreators.js
Run Code Online (Sandbox Code Playgroud)
SONAR属性:
sonar.login=**
sonar.password=**
sonar.verbose=true
sonar.language=js
sonar.sources=.
sonar.projectBaseDir=/opt/app/workload/jenkins_25172/data/jobs/DEV02/workspace/
sonar.inclusions=coverage/**/*
sonar.javascript.lcov.reportPath=coverage/lcov.info
sonar.projectKey=test2
sonar.projectName=test2
sonar.projectVersion=version1
sonar.branch=test
sonar.att.view.type=dev
sonar.tattletale.enabled=false
Run Code Online (Sandbox Code Playgroud)
任何解决此问题的输入都表示赞赏.
据我所知,SDK和API不同,不完全,但SDK是实现工具vs API更多的接口.
SDK可以提供一组工具,辅助类(例如,简化API访问的附加代码),特定语言绑定和示例代码,以帮助用户开发和使用API.通常,您可以使用单个API公开一组功能,并拥有多个SDK来访问该API.对于API,可能并不总是存在SDK,但在提供API时它很有用.
我们要求我们开发REST API来访问数据,我的建议是在REST API之上创建SDK,因为
我们不应该过度负责API设计.客户端需要的很多东西都可以将这个负担推到SDK上.SDK可以提供开发人员在其应用程序中使用的特定于平台的代码来调用API操作 - 这意味着我们可以保持API清洁.
另一位架构师对在REST API之上开发SDK不感兴趣,他认为SDK将是一个额外的开销.
我只是想从这个论坛得到各种想法...任何建议,反馈,想法都会非常有用..
谢谢,
巴拉尼