在我们的反应应用程序中,我们有父子组件。子组件调用父方法来更新父状态值。这是示例代码
//父组件
const parent = ({ items }) => {
const [information, setInformation] = useState([]);
const updateParentInformation = (childUpdate) => {
setInformation(information + childUpdates)
}
return (
<div>
<div>{information}</div>
...
{items.map((item) => {
return (
<ChildComponent item={item} updateParentInformation={updateParentInformation} />
)})}
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
//子组件
const ChildComponent = ({ item, updateParentInformation }) => {
useEffect(() => {
const cardInformation = calculateCardInformation(item)
updateParentInformation(cardAmpScripts)
}, [item])
return (
<div>
.....
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
因此子组件调用父组件的 updateParentInformation 函数来更新父组件的状态,从而重新渲染父组件。我在这里有几个问题
在某些情况下,我们可能有100-150个子组件,在这种情况下我们的父母会重新渲染很多,如何避免这种情况。我们可以通过这段代码来避免这种情况
....
let recievedUpdates = 0
const …Run Code Online (Sandbox Code Playgroud)我正在将 mongoDB 用于应用程序。该应用需要高频率的读取、写入和更新。
我只关心更新和删除功能。这两个哪个快。我正在根据一个属性对集合建立索引。更新和删除都满足了我的目的,但我不确定哪一个是完美的并且具有更好的性能。
尽管我执行了以下操作,但我还是收到连接异常(在最后给出):
创建 Jedis 实例时,我将超时字段设置为 1 小时 (60*60*1000)。我也用0试过了,还是不行。
当我在 7 分钟后检查日志时,我注意到了这一点,尽管我认为异常会更早发生(在 300 秒时)。为什么我总是得到它?知道为什么吗?
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: It seems like server has closed the connection.
at redis.clients.util.RedisInputStream.readLine(RedisInputStream.java:90)
at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:111)
at redis.clients.jedis.Protocol.process(Protocol.java:64)
at redis.clients.jedis.Protocol.read(Protocol.java:127)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:199)
at redis.clients.jedis.BinaryJedis.smembers(BinaryJedis.java:1187)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Crawling应用程序,我需要非常快速的插入和选择数据库.我找到了Redis,它解决了我的目的.我的问题是"在实时生产应用程序中使用Redis是否明智?".我读了一些博客,他们认为Redis不可靠.请建议.
我们的Spring Boot应用程序中有两个数据库,分别称为source和target。这是那些的配置
源配置
package com.alex.myapp.config;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "sourceManagerFactory",
transactionManagerRef = "sourceTransactionManager",
basePackages = {"com.alex.myapp.source.repository"}
)
public class SourceDbConfiguration {
@Autowired
private Environment env;
@Primary
@Bean(name = "sourceManagerFactory")
public LocalContainerEntityManagerFactoryBean
sourceManagerFactory(EntityManagerFactoryBuilder builder) {
LocalContainerEntityManagerFactoryBean em = builder
.dataSource(sourceDataSource())
.packages("com.alex.myapp.source.entity")
.persistenceUnit("source")
.build();
return em;
}
@Primary
@Bean
public DataSource …Run Code Online (Sandbox Code Playgroud) 我们正在使用面向服务的体系结构(SAO)开发一个应用程序,我们使用Angular JS作为前端.服务将使用Java编写.目前我们正在讨论是否应该使用REST服务或SOAP服务.我知道两者都有优点和缺点但哪一个最适合我们的情景,我们不清楚.
问候,亚历克斯
通常,我们首先检查项目要求并设置表,然后进行1/2/3-NF标准化.
我不喜欢这种方式,因为它不是面向对象的方式.那么任何机构都可以分享我们如何使用OOP来设计复杂的表模式/关系?
即使是链接/书籍也是受欢迎的.这对我来说非常重要.
谢谢
我的应用程序中有父片段和对话框片段。单击按钮父片段打开对话框片段。这是我的 ParentFragment 类。
public class ParentFragment extends Fragment {
........
........
public class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
MyDialogFragment newFragment = new MyDialogFragment();
newFragment.setTargetFragment(ParentFragment.this, 0);
newFragment.show(getFragmentManager(), "dialog");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是 MyDialogFragment 类
public class MyDialogFragment extends DialogFragment {
..........
public MyDialogFragment() {
parentFragment = (ParentFragment)getTargetFragment();
}
...........
...........
}
Run Code Online (Sandbox Code Playgroud)
当 MyDialogFragment 类中的 getTargetFragment 总是返回 null 时。
我有一个现有的应用程序(使用MySQL DB).
我刚刚得到一个新的要求,我需要从主要实体中删除一些记录.我不想在这里应用硬删除作为整个应用程序的风险.如果我使用软删除,我必须添加另一个字段is_deleted,因为我必须更新我的所有查询(例如is_deleted ='0').
如果有更智能的方法来处理这种情况,请告诉我.如果我引入一个新标志来处理删除,我必须在一半的查询中进行更改.
android ×2
redis ×2
architecture ×1
database ×1
java ×1
jedis ×1
mongodb ×1
mysql ×1
oop ×1
reactjs ×1
rest ×1
soap ×1
spring-boot ×1
use-effect ×1
use-ref ×1
web-services ×1