ReactAngular

一个重大的消息——本站的 Angular 版本不再继续开发,将会用 React 「重新」开发

因为我实在无法忍受使用 Angular 这当孙子一般的体验了。

Colliot5/12/2018, 8:08:01 AM

Angular 版本的源码会在彻底用 React 重写完之后开放,作为血与泪的纪念,作为反面教材。此生不再碰 Angular。

Colliot5/12/2018, 8:10:18 AM

Angular 版本的源码会在彻底用 React 重写完之后开放,作为血与泪的纪念,作为反面教材。此生不再碰 Angular。

by Colliot

现在计划可能又变,可能还可以抢救一会儿……

Colliot5/13/2018, 1:21:35 PM

我很讨厌 Angular,但越是讨厌,就越要去战胜它。

Colliot7/1/2018, 10:40:55 PM

真香 zsbd zsbd

chenzheng12/9/2018, 8:10:01 AM

现在计划可能又变,可能还可以抢救一会儿……

by Colliot

那你的样式怎么办,还用 material design?

chenzheng12/9/2018, 8:12:32 AM

能讲述一下讨厌Angular的原因吗?

YangKeao1/12/2019, 1:13:49 AM

能讲述一下讨厌Angular的原因吗?

by YangKeao

Angular 作为一个框架,限制很多。特别是它的编译工具,你随便搞一个组件不引用(比如只在 storybook 中用到),它生产模式 AOT 的时候都会报说,你没有在某个模块里引用这个组件。

在 storybook 里,它只能这么写:

  .add(
    'Registration Dialog',
    () => ({
      component: LogindialogComponent,
      moduleMetadata: {
        imports: [HttpModule, RouterTestingModule],
        schemas: [],
        declarations: [AppLeftNavTopComponent, AppLeftNavBottomComponent],
        providers: [],
      },
      props: {
        resources: resources.zh,
        language: 'Chinese',
        dialogShow: true,
      },
    }),
  )

这时候不能根据 component 的定义对 props 进行类型检查——它的 props 是用 @Input() public someProp: boolean = false; 这样的带有 decorator 的类属性的语法定义的。

另外,如果你想搞 parent 组件(比如在 storybook 中用一个容器包裹住你的组件,当然也可以不在 storybook 中),如果是 React,你可以简单地这么写:

return <div style={{height: 500}}>
  <YourChildComponent />
</div>

但是在 Angular 里,居然是无法实现类似的效果的。Angular 的视图依赖的是模板,但你也无法像 Vue 那样简便地用一个有 template 字段的对象定义一个组件,而必须用一个类。这样就回到了之前的问题,AOT 的时候会报这个类没有被引用……

实际上它可以通过 NgComponentOutlet 实现动态渲染一个组件,但是这个时候传 props 变得非常麻烦。我看见的解决方案都是在 child 组件的构造函数里注入这些参数的(因为这个 NgComponentOutlet 只能提供这样的 API),非常地反人类。

Colliot1/13/2019, 7:52:56 AM

huge还在开发新功能马?

ice10001/19/2019, 8:55:39 PM

虎哥变成孙子了,是吗?

ice10001/31/2019, 12:24:10 AM

我终于还是开始了。弃绝 Angular。

Colliot2/23/2020, 2:38:08 PM

Preview:

Cancel

Elsewhere

caijin replied to 前端开发如何解决画 UI 的问题?

UI 要你吃xx,你能不吃吗

ginv0_ replied to 计算机组成应该怎么学?

自学。唐朔飞的;(本校)和体系结构一起学的;实验不多(学长有火炬可以抄..);要写一些verilog,南大的实验推荐,GitHub上有代码。

crazy95sun replied to 为什么不能对 C++ 的语法进行简化?

如果允许 void <T>addName(T&& name) { names_.push_back(forward(name)); 就应该允许 void <T>addName(T&& /_unnamed_/) { 而形如A < B > C (D, E)的代码可能产生很大的歧义

Colliot replied to 随机过程应该怎么学?

一个有限集合的子集,就是从原集合中选取一些元素构成的。对于每一个元素,无非是选或不选两种可能。对于 n 个元素,就是 2^n 种可能,每种可能对应一个子集,所以一共有 2^n 种。

Colliot replied to 随机过程应该怎么学?

A subset B 真的成立吗?为什么会觉得成立呢?A 的元素 1 也在 B 中吗?

Colliot replied to 随机过程应该怎么学?

我感觉需要一点基本常识,比如 对无限集合的感觉 对不可数无限集合的感觉 当我们在谈论一个被定义出来的对象的时候,我们并不一定是要完全描绘出这个对象。我们可能只是谈论关于这个对象的某些命题,比如当我们在谈论集合 A 的时候: 我们可能只想知道,对于给定的 x,是否有 x in A——也许我们并不想,也不能枚举出 A d 所有元素。 我们可能想知道,对于给定的 x in A, y in A,对 x, y 进行某种操作之后得到的结果 z 是否还属于 A。 对满足某一性质的「最小」集合的存在性的感知。理论上这依赖 Zorn 引理,但直觉上这并不是很难接受的。 只有熟稔了这些常识,才可以知道 sigma-代数是什么,或者,更本质地,就知道了我们为什么要定义 sigma-代数、 sigma-代数的定义为什么会是这样的。 尽管现代数学的定义粗看起来艰涩而反直觉,但它背后其实有着跟其他易懂的概念一样精妙的直觉——我们上面提到的这些常识,就是这些「直觉」和艰涩的「公理化定义」互相转换的关键。

Gagaxi replied to 随机过程应该怎么学?

1.为为什么?qaq .P(D)={∅,{1},{2},{1,2}} .2^5 个

Gagaxi replied to 随机过程应该怎么学?

1.A⊂C 不成立 .A⊂B 成立 .A的子集:∅,{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}

Colliot replied to 随机过程应该怎么学?

也许我们需要先来回顾一些集合论的概念 什么是一个集合呢?也许我们不需要了解得非常深刻。我们只需要确保自己能看到诸如 A={1, 2, 3} 或是 B={ a, b, c, d, e } 的简单记号——它们都是集合,A 有三个「元素」或者叫「成员」,B 有五个。 同时我们还需要看懂, 1 in A 这样的记号。这表示 1 「属于」 A。这应当都是不超过高中水平的直觉。 应当相信,可以有集合的集合,比如 C = {A, B } 就是集合的集合。展开 A, B,也可以把 C 写作为 { {1, 2, 3}, { a, b, c, d, e } }。 除了「属于」记号 in,常用的还有「子集」记号 subset,比如对 D = {1, 2} 就有 D subset A 。我们还没有解释这个记号,但你应当已经猜到了—— D 的每一个元素同时也在 A 中,所以 D 是 A 的「子集」。 下面请回答几个问题: A subset C 成立吗?为什么? A subset B 成立吗?为什么? A 有哪些「子集」?(非必答) 对于集合 A,我们可以枚举它的所有子集: 0 个元素的,只有一个,是所谓「空集」,通常记作 emptyset,它是唯一的,并且是所有集合的子集 1 个元素的,有三个——{1}, {2}, {3} 2 个元素的,有三个——{1, 2}, {2, 3}, {1, 3} 3 个元素的,有一个——{1, 2, 3} 以它们为元素,我们构成一个集合 mathcal{P}(A) = { emptyset, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}, {1, 2, 3} },这称为 A 的幂集(power set)。 为什么叫它幂集呢?注意到 A 有三个元素,而它的幂集有八个元素,8 = 2 ^ 3——幂集的元素个数,正好是以原集合元素个数为指数的 2 的幂。这是有原因的,你能想明白吗? 请回答以下问题: 为什么幂集的元素个数满足这样的规律呢? 集合 D 的幂集是什么?写出它的具体表示。 集合 B 的幂集有多少个元素?

Gagaxi replied to 随机过程应该怎么学?

那么虎老师,什么是 σ-algebra, 什么是Borel σ-algebra。