小编Dav*_*SEY的帖子

为什么 queryParams 为空

我目前正在尝试了解如何在 Angular 组件中收集 queryParameters。因为我只想在初始化期间收集它们一次,所以我首先尝试了快照模式:

ngOnInit() {
    console.log(this.route.snapshot.queryParamMap);
    console.log('param test = ' + this.route.snapshot.queryParamMap.get('test'));
}   
Run Code Online (Sandbox Code Playgroud)

查看Stackblitz演示:https://stackblitz.com/edit/angular-2tuafn 可测试通过folowwing网址:https://angular-2tuafn.stackblitz.io?test=123

但结果,queryParam "test" 为空,而 queryParamMap 为空,请参阅控制台输出:

ParamsAsMap {params: {…}}
    keys: Array(0)
    params: {}
    __proto__: Object
param test = null
Run Code Online (Sandbox Code Playgroud)

=> 为什么 queryParamMap 是空的???

然后,我尝试使用 Observable 模式:

ngOnInit() {
    this.route.queryParamMap.subscribe(
      (params: ParamMap) => {
        console.log(params);
        console.log('param test = ' + params.get('test'));
      }
    );
}
Run Code Online (Sandbox Code Playgroud)

查看Stackblitz演示:https://stackblitz.com/edit/angular-hfqx8a 可测试通过folowwing网址:https://angular-hfqx8a.stackblitz.io?test=123

但结果, queryParam "test" 首先为空,然后取正确的值 (123),请参阅控制台输出:

ParamsAsMap {params: {…}}
    keys: Array(0)
    params: {}
    __proto__: Object
param test …
Run Code Online (Sandbox Code Playgroud)

angular

12
推荐指数
2
解决办法
6400
查看次数

如何在另一个 vue 应用程序中包含 vue 应用程序?

我目前被要求生成将包含在不同客户网站中的小部件。

让我们这样说:

例子

有2个约束:

  1. 禁止使用 iframe
  2. 客户网站可以使用任何技术(PHP、React、Angular、Vue.js、JQuery 等)来完成

由于请求的小部件应该是交互式的,我想使用 javascript 框架来开发它(我想到了 Vue.js)。

但是,我认为这可能会导致一些冲突(甚至破坏客户的网站),例如,如果客户的网站已经在使用另一个版本的 Vue.js。

我花了几个小时寻找和思考解决方案,但期望使用 iframe 我没有找到任何东西......

=> 有没有办法将 Vue.js 应用程序包含在另一个 Vue.js 应用程序(或 React、Angular 等)中?

在此先感谢您的帮助。

javascript vue.js vuejs2

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

Nuxt - 异步操作后等待(this.$store.dispatch)

我是 Nuxt 的新手,我面临着一个我不明白的问题。

如果我编码如下:

const resp1 = await this.$axios.$post('urlCall1', {...dataCall1});
this.$axios.$post('urlCall2', {...dataCall2, resp1.id});
Run Code Online (Sandbox Code Playgroud)

resp1.id 在第二个 axios 调用中正确设置 => 我们等待第一个调用完成,然后再进行第二个调用。

但是,当我在 vuex 商店 ex 中定义异步操作时:

  async action1({ commit, dispatch }, data) {
    try {
      const respData1 = await this.$axios.$post('urlCall1', { ...data });
      commit('MY_MUTATION1', respData1);
      return respData1;
    } catch (e) {
      dispatch('reset');
    }
  },
  async action2({ commit, dispatch }, data, id) {
    try {
      const respData2 = await this.$axios.$post('urlCall2', { ...data });
      commit('MY_MUTATION2', respData2);
    } catch (e) {
      dispatch('reset');
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后在我的 …

vue.js vuex nuxt.js nuxtjs

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

首次应用渲染后延迟模块预加载

我目前正在开发一个单页应用程序。在主页面中显示了几张卡片。可以启用或禁用这些卡。如果禁用,则仅显示卡片的标题。如果启用,则显示卡片的标题和内容(延迟加载)默认情况下,所有卡片都显示和禁用。根据用户的档案,加载页面时某些卡片可能处于活动状态。

目前,我没有设置任何preloadingStrategy,因此,在加载页面时,只加载活动卡片的内容。

我试图将 preloadingStrategy 设置为 preloadAllModules,它工作正常,但它减慢了应用程序的启动速度。实际上,当所有模块同时加载时,活动卡的内容显得较慢。

=> 我想要的是:1. 加载应用程序 2. 加载所有活动卡片的内容 3. 预加载所有其他在启动时未显示的模块

=> 在第一次渲染后某种延迟预加载

=> 你认为这可能吗?

提前感谢您的反馈

angular

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

标签 统计

angular ×2

vue.js ×2

javascript ×1

nuxt.js ×1

nuxtjs ×1

vuejs2 ×1

vuex ×1