小编Osw*_*ldo的帖子

Redux&RxJS,有什么相似之处吗?

我知道Redux是Flux的一个更好的"实现",或者更好地说它是一个简化事物(应用程序状态管理)的重新设计.

我听过很多关于反应式编程(RxJS)的内容,但我还没有去学习它.

所以我的问题是:这两种技术之间是否存在任何交集(任何共同点)或它们是互补的?......还是完全不同?

javascript rxjs redux

100
推荐指数
3
解决办法
3万
查看次数

如何使用VS Code在.vue文件中使用Typescript?

我正在使用Visual Studio Code,Vue 2(webpack模板)和Typescript.

这是我的App.vue组件:

<template>
    <div id="app">
        <navbar></navbar>
        [content here]
    </div>
</template>

<script lang="ts">
    import Navbar from './components/Navbar'

    export default {
        components: {
            Navbar
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

问题1:一切正常,但是我希望<script lang="ts">在.ts文件中有标签内部的智能感知,那么我该如何实现呢?

问题2:在我的main.ts中import App from './App',但是"./App"以红色加下划线,因为VS Code无法找到.ts文件.有没有办法让编辑器在编译时(编辑时)之前识别.vue?

更新(2018-03-25):我强烈建议每个想要设置打字稿的人阅读本文

typescript vue.js visual-studio-code vuejs2

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

具有ControllerAs绑定的ui-router

ui-router状态:

$stateProvider
    .state('dashboard', {
        url: '/dashboard',
        templateUrl: 'app/dashboard/dashboard.html',
        controller: 'DashboardController as vm'
    });
Run Code Online (Sandbox Code Playgroud)

在DashboardController中我有:

var vm = this;
vm.title = 'Dashboard';
Run Code Online (Sandbox Code Playgroud)

在dashboard.html模板中:

{{vm.title}}
Run Code Online (Sandbox Code Playgroud)

为什么结果显示"{{vm.title}}"而不是绑定到它在控制器中的值?

angularjs angular-ui-router

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

我可以将Firebase Cloud功能用于搜索引擎吗?

Firebase最近发布了与Cloud Functions的集成,允许我们上传Javascript函数,无需我们自己的服务器即可运行.

是否可以使用这些功能构建搜索引擎?我的想法是使用本地磁盘(tmpfs卷)将索引数据保存在内存中,对于每个写入事件,我将索引新数据.tmpfs是否在函数调用(实例)之间保存数据?

云功能可以用于此目的,还是应该使用专用服务器来索引数据?

与此相关的另一个问题是:当云功能从Firebase实时数据库获取数据时,它是消耗网络还是只读取磁盘?如何在计算中计算?

谢谢

firebase firebase-realtime-database google-cloud-functions

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

有没有办法让 Prettier 运行得更快?

我正在使用这些软件包的最新版本:

  • ESLint:8.11.0
  • 更漂亮:2.6.0
  • eslint-插件-更漂亮:4.0.0
  • eslint-config-prettier:8.5.0
规则 时间(毫秒) 相对的
更漂亮/更漂亮 156074.280 98.4%
vue/属性连字符 678.026 0.4%
@typescript-eslint/no-unused-vars 593.419 0.4%
不重新声明 174.305 0.1%
语句之间的填充线 145.755 0.1%
vue/下一个​​有效时间点 38.034 0.0%
不限制进口 37.361 0.0%
@typescript-eslint/no-empty-function 37.335 0.0%
@typescript-eslint/无精度损失 36.425 0.0%
vue/计算属性中无异步 36.114 0.0%

npm run lint 179.28s user 2.19s system 108% cpu 2:47.58 total

Prettier 占用了总时间的 98.3%。

有什么方法可以优化它(通过传递参数、使用一些额外的包、禁用特定规则……)?

performance prettier prettier-eslint

7
推荐指数
0
解决办法
1208
查看次数

如何在Custom Helper中合并htmlAttributes

我有一个自定义助手,我收到一个htmlAttributes作为参数:

public static MvcHtmlString Campo<TModel, TValue>(
            this HtmlHelper<TModel> helper,
            Expression<Func<TModel, TValue>> expression,
            dynamic htmlAttributes = null)
{
   var attr = MergeAnonymous(new { @class = "form-control"}, htmlAttributes);
   var editor = helper.EditorFor(expression, new { htmlAttributes = attr });
   ...
}
Run Code Online (Sandbox Code Playgroud)

MergeAnonymous方法必须返回参数中收到的合并后的htmlAttributes,其中包含"new {@class ="form-control"}":

static dynamic MergeAnonymous(dynamic obj1, dynamic obj2)
{
    var dict1 = new RouteValueDictionary(obj1);

    if (obj2 != null)
    {
        var dict2 = new RouteValueDictionary(obj2);

        foreach (var pair in dict2)
        {
            dict1[pair.Key] = pair.Value;
        }
    }

    return dict1;
}
Run Code Online (Sandbox Code Playgroud)

在示例字段的编辑器模板中,我需要添加更多属性:

@model decimal? …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc extension-methods attributes

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

使用 Firebase 登录 Facebook:错误“身份验证/超时”

在尝试使用带有重定向流的 Facebook Firebase 提供程序登录后,我收到错误代码“身份验证/超时”(消息:“操作已超时”)。错误出现在getRedirectResult.catch. 请参阅下面的代码:

getRedirectResult(): void {
    firebase.auth().getRedirectResult()
        .then(result => {
            if (result.credential) {
                let token = result.credential.accessToken;
            }
        })
        .catch(error => console.log('error on facebook login', error) );
}
Run Code Online (Sandbox Code Playgroud)

我尝试登录台式机和 iPhone SE,一切正常。该问题仅出现在我的 iPad 2 中。

javascript firebase firebase-authentication

5
推荐指数
0
解决办法
767
查看次数

如何使用vue cli 3将多个组件中的CSS提取到单个文件中?

这是我在我的尝试vue.config.js

module.exports = {
  configureWebpack: {
    optimization: {
      splitChunks: {
        cacheGroups: {
          styles: {
            name: 'styles',
            test: /\.css$/,
            chunks: 'all',
            enforce: true,
          },
        },
      },
    },
  },
  css: {
    sourceMap: devMode,
    extract: {
      filename: 'main.css',
    },
  },
};
Run Code Online (Sandbox Code Playgroud)

我的输出目录中有多个css文件,我想将所有css文件合并/优化到一个文件中。我有通过动态导入创建的多个块,不确定是否是原因。

在具有以前的CLI的旧webpack模板中,我使用extract-text-webpack-plugin了该工作,并且该工作正常。

我在以下问题中找到了一些讨论,但在提出此问题时尚无解决方案。

vue-cli webpack-4 mini-css-extract-plugin

5
推荐指数
0
解决办法
1185
查看次数

当父路由中存在可选参数时,在 Vue router-link 中设置活动类

lang在所有路由路径的开头都有一个可选参数,例如/:lang?/foo.

router-link当我在传递参数时使用 foo 路由时lang,它与该路由匹配并正确地将一个.router-link-active类添加到<a/>.

然而,在我的项目的许多地方,我没有向 传递任何参数,router-link并且在全局路由器导航防护中,如果没有人传递,beforeEach我将设置参数。lang在这种情况下,router-link不会添加活动类,因为它与路线不匹配,因为道具中缺少参数to

如何使匹配逻辑忽略所有路由的可选参数,以便添加.router-link-active.router-link-exact-active类?

这是我玩过的一个jsfiddle,我希望第一个链接是红色的。

以下是相关部分:

  <router-link :to="{name: 'foo'}">/foo</router-link>
  <router-link :to="{name: 'foo', params: {lang: 'en'}}">/en/foo</router-link>
Run Code Online (Sandbox Code Playgroud)
routes: [
  {
    path: '/:lang?',
    component: {
      render(c) {
        return c('router-view');
      },
    },
    children: [
      {
        name: 'foo',
        path: 'foo',
        component: Foo
      }
    ]
  }
]

router.beforeEach((to, from, next) => {
  if (!to.params.lang) {
    const …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router

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