小编Ton*_*nio的帖子

如何使用服务器组件获取查询参数(下13)

Next13 已推出,他们建议使用新app目录,其中每个组件默认都是“服务器组件”

在“服务器组件”内,您可以使用:

  • async/await获取数据。
  • cookies()检索 cookie
  • headers()检索请求标头。

但我找不到如何检索查询参数。

在 Next 13 之前getServerSideProps,您可以使用context.query来访问查询参数。

您知道如何使用 Next 13 中的“服务器组件”检索查询参数吗?

reactjs server-side-rendering next.js

61
推荐指数
2
解决办法
7万
查看次数

如何在HtmlWebpackPlugin/webpack 2中使用chunksSortMode

我在index.html中插入了我的块的顺序问题.

我正在使用webpack2和HtmlWebpackPlugin.

我认为控制块顺序的是chunksSortMode选项.

HtmlWebpackPlugin 的文档说:

chunksSortMode:允许在将块包含到html之前控制块的排序方式.允许的值:'none'| 'auto'| '依赖'|'手册'| {function} - 默认:'auto'

有什么区别:

  • 没有
  • 汽车
  • 依赖
  • 手册

对于'功能'选项,这个答案给了我洞察力

我可能不会理解基本的东西,因为我希望从一开始就在文档中找到这些信息.

html-webpack-plugin webpack-2

13
推荐指数
1
解决办法
3112
查看次数

Angular 2路由器中的非Url参数

在角度1.*中,我使用ui-router并且能够将NON URL参数从一个状态传递到另一个状态.通过NON URL参数,我的意思是传递一些不出现在URL上的参数(这对用户来说是完全透明的).

在Angular 1.*中执行此操作的方法是通过定义这样的状态(stateToRedirect是非url参数)

   $stateProvider
    .state('LOGIN_STATE', {
      url: `login`,
      component: 'login',
      params: {
        stateToRedirect: 'home'
      }
    });
Run Code Online (Sandbox Code Playgroud)

并改变这样的状态:

  $state.go('LOGIN_STATE', {
    stateToRedirect: 'OTHER_STATE',
  });
Run Code Online (Sandbox Code Playgroud)

在LOGIN_STATE中,我能够访问此参数:

$stateParams.stateToRedirect;
Run Code Online (Sandbox Code Playgroud)

我正在尝试为Angular 2路由器找到相同的行为,我的理解是Angular 2路由器已经改进了很多,我们可能不需要使用ui-router-ng2.

所以我的问题是:你如何在Angular 2路由器中重现上述行为?

这个问题似乎是我想要的,但我不想在URL中使用参数,并且路径上的'data'属性看起来不错,但我找不到关于如何动态设置它的文档.

angular2-routing angular

12
推荐指数
1
解决办法
3963
查看次数

如何将 PurgeCSS 与 Angular CLI 项目集成

我有一个使用 Angular CLI 创建的 Angular 项目,所以我有 angular.json 文件用于配置构建。

我想集成 PurgeCSS,因为它似乎是减少 CSS 包大小的好工具。

PurgeCSS 网站上,他们解释了如何与 Webpack 集成。我找到了一个教程,解释了如何添加自定义 webpack 与 Angular CLI 的集成

有没有人有 PurgeCSS 与 Angular CLI 项目集成的成功例子?

webpack angular-cli angular css-purge

12
推荐指数
3
解决办法
6623
查看次数

由于超时,加载块 77 失败,但 Sentry 上报告错误

我使用 Sentry(类似于 Bugsnag)来监视站点上的前端错误。

在 Sentry 上我有很多这样的错误:

Error: Loading chunk 77 failed.
(timeout: https://www.exemple.com/77.6a28baf2f4e4ff5f87a6.js)
Run Code Online (Sandbox Code Playgroud)

我执行延迟加载,但旧文件在部署期间保留,因此问题与部署的网站的新版本无关。

就像错误所说的那样,这似乎是超时,因此可能是用户连接稍微下降了。

但我不明白的是:

  • 我可以在 Sentry 上看到这些错误:如果用户在加载网站时连接断开,他如何向 Sentry 发送报告错误的内容

  • 在 Sentry 上,我看到的错误来自使用 Windows 的用户,因此这意味着他们在桌面上 => 在桌面上时连接断开的概率很低。

我在网上搜索了我发现的所有内容的解释:

  • 部署和延迟加载(我保留旧文件,所以这不是问题)

  • 连接问题(为什么我会看到报告这些错误)

任何人都想探索一些东西来尝试找出这些错误发生的原因。

webpack angular

7
推荐指数
1
解决办法
3233
查看次数

存储(地理位置)AWS RDS备份的位置

我使用AWS并启用了自动备份.

对于我们的客户之一,我们需要确切知道备份数据的存储位置.

AWS FAQ网站上,我可以看到:

问:我的自动备份和数据库快照存储在哪里?如何管理其保留?

Amazon RDS数据库快照和自动备份存储在S3中.

我的理解是你可以在任何你想要的地方放置一个S3实例,所以我不清楚这个数据在哪里.

为了清楚起见,我对物理位置感兴趣(是欧洲,美国......)

backup amazon-s3 amazon-web-services amazon-rds

6
推荐指数
1
解决办法
4571
查看次数

workbox-webpack-plugin和Angular。如何在Angular中收听广播更新事件

我正在尝试在我的Angular Application中使用service-worker。它是使用webpack构建的。

我使用workbox-webpack-plugin。我想为我的GET API调用提供表单缓存,并在后台更新数据。

为此,我将选项runtimeCaching与处理程序一起使用staleWhileRevalidate有关GenerateSW插件的更多详细信息,请参见此处

这是我在webpack.config.js中的配置:

  new GenerateSW({
    // importWorkboxFrom: 'local',
    clientsClaim: true,
    skipWaiting: true,
    navigateFallback: '/index.html',
    runtimeCaching: [
      {
        // Match any same-origin request that contains 'api'.
        urlPattern: /https:\/\/api.*/,
        handler: 'staleWhileRevalidate',
        options: {
          cacheName: 'api',
          broadcastUpdate: {
            channelName: 'api-updates',
          },
          // Add in any additional plugin logic you need.
          plugins: [],
        },
      }
    ]
  }),
Run Code Online (Sandbox Code Playgroud)

根据本文档,当缓存更新时,我应该能够收到一个事件(我想向用户显示某些内容,以便他可以刷新数据)。

接收数据的代码如下所示:

export class AppComponent implements OnInit {

  public ngOnInit() {
    console.log( 'AppComponent - ngOnInit' ); …
Run Code Online (Sandbox Code Playgroud)

broadcast webpack angular workbox workbox-webpack-plugin

5
推荐指数
1
解决办法
293
查看次数

Typescript Angular HTTP 请求只获得最后一个结果

确保我的 Angular HTTP 请求仅返回最新响应数据的“最佳”(常见)方法是什么。(我正在使用 Angulars HttpClient)

假设用户在返回上一个请求的响应之前提交了一个新请求。我的后端需要更多时间来处理第一个请求,因此第二个请求在第一个请求之前返回 -> 视图更新,稍后第一个请求返回。现在视图已使用旧数据更新。那显然不是我想要的。

我找到了取消请求的解决方案,但这真的是唯一的方法吗?是否有任何内置功能可以实现这一目标?

if ( this.subscription ) {
   this.subscription.unsubscribe();
}
this.subscription = this.http.get( 'myAPI' )
 .subscribe(resp => {
  // handle result ...
});
Run Code Online (Sandbox Code Playgroud)

我知道有switchMap()操作符,它只返回最新的数据,但据我所知,你只能在 observable 中使用它。就我而言,我没有观察到任何输入变化。我只是通过 HTML 模板中的 (ngSubmit)="doRequest()" 指令在表单提交上调用一个函数。

// get called on submit form
doRequest() {
 this.http.get('myAPI')
  .subscribe(resp => {
    // handle result ...
  });
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 switchMap 运算符,或者您有其他解决方案吗?感谢您抽出宝贵时间:)

PS:当然,在我的真实项目中,我有一个 api 服务类,它具有不同的功能来处理请求,并且只返回 http 响应可观察值。所以我在 doRequest() 函数中订阅了这样一个 observable。

javascript httpclient rxjs typescript angular

3
推荐指数
1
解决办法
2111
查看次数

Ionic 4 - 离子选择不会滚动到警报中的选定项目

我正在使用ionic 4.7.0.

我报告的问题发生在 Chrome 和 Firefox 上。

实际行为:

使用ion-select带有选项的大名单,当您打开警报,ion-select不会自动滚动到选定的值。用户看到选项列表中的第一个值,他可能认为没有选择任何内容

预期行为:

当警报打开时,视图会自动以所选值为中心

我创建了这个stackblitz来突出显示行为,我们可以在 stackblitz 上看到在加载视图时,选定的值是11:00但是当您打开警报(通过单击 ion-select)时,我希望视图会自动滚动选定的值。

这是离子选择的预期行为吗?

我发现了一些关于同一主题的问题,但没有什么能真正回答这个问题:

scroll ionic-framework angular ionic4 ion-select

1
推荐指数
1
解决办法
1569
查看次数