高级 Vue 组件模式 (9)

2018-10-29
阅读 3 分钟
5.2k
到此为止,我们的 toggle 组件已经足够强大以及好用了,因此这篇文章不会再为它增加新的特性。如果你是从第一篇文章一直读到这里的读者,你一定会发现,整篇文章中,我几乎没有对 toggle-on 和 toggle-off 做出任何更改和重构,因此这篇文章着重来重构一下它们。

高级 Vue 组件模式 (8)

2018-10-28
阅读 3 分钟
3.7k
在第七篇文章中,我们对 toggle 组件进行了重构,使父组件能够传入开关状态的初始值,同时还可以传入自定义的状态重置逻辑。虽然父组件拥有了改变 toggle 组件内部状态的途径,但是如果进一步思考的话,父组件并没有绝对的控制权。在一些业务场景,我们期望父组件对于子组件的状态,拥有绝对的控制权。

高级 Vue 组件模式 (6)

2018-10-21
阅读 3 分钟
3.5k
之前的五篇文章中,switch 组件一直是被视为内部组件存在的,细心的读者应该会发现,这个组件除了帮我们提供开关的交互以外,还会根据当前 toggle 的开关状态,为 button 元素增加 aria-expanded 属性,以 aira 开头的属性叫作内容增强属性,它用于描述当前元素的某种特殊状态,帮助残障人士更好地浏览网站内容。

高级 Vue 组件模式 (5)

2018-10-21
阅读 2 分钟
3.3k
在之前的文章中,详细阐述了子组件获取父组件所提供属性及方法的一些解决方案,如果我们想在父组件之中访问子组件的一些方法和属性怎么办呢?设想以下一个场景:

高级 Vue 组件模式 (4)

2018-10-21
阅读 2 分钟
3.1k
在第三篇文章中,我们使用 mixin 来抽离了注入 toggle 依赖项的公共逻辑。在 react 中,类似的需求是通过 HOC 的方式来解决的,但是仔细想想的话,react 在早些的版本也是支持 mixin 特性的,只不过后来将它标注为了 deprecated。

高级 Vue 组件模式 (3)

2018-10-20
阅读 2 分钟
3.2k
之前一篇文章中,我们虽然将 toggle 组件划分为了 toggle-button、toggle-on 和 toggle-off 三个子组件,且一切运行良好,但是这里面其实是存在一些问题的:

高级 Vue 组件模式 (2)

2018-10-20
阅读 2 分钟
3.6k
熟悉 vue 的童鞋可能马上会想到不同的解决方案,比如使用 slot 并配合 v-if,我们这里采用另外一种方法,利用 vue 提供的 provide/inject 属性按照复合组件的思想来实现。

高级 Vue 组件模式 (1)

2018-10-20
阅读 1 分钟
4.2k
去年,曾经阅读过一系列关于高级 react 组件模式的文章,今年上半年,又抽空陆陆续续地翻译了一系列关于高级 angular 组件模式的文章,碰巧最近接手了一个公司项目,前端这块的技术栈是 vue。我对于 vue 本身还是比较熟悉的,不过大多都是一些很简单的个人项目,在构建相对比较复杂的应用中缺乏实践经验,就想着也搜搜类...

高级 Angular 组件模式 (7)

2018-10-08
阅读 1 分钟
3.1k
因为父组件会提供所有相关的 UI 元素(比如这里的 button),所以 toggle 组件的开发者可能无法满足组件使用者的一些附加需求,比如,在一个自定义的开关控制元素上增加 aria 属性。

高级 Angular 组件模式 (6)

2018-05-30
阅读 2 分钟
3.1k
Render Props最近在React社区中引起了轰动,但是与之类似的模式在Angular中似乎并没有得到太多关注。我在之前写的文章提及过,TemplateRefs就是Angular中的Render Props,同时我会在这篇文章中列举一个简单易用的例子。

高级 Angular 组件模式 (5)

2018-02-26
阅读 2 分钟
3.5k
在之前的例子中,已经出现多次使用template reference variable(模板引用变量)的场景,现在让我们来深入研究如何通过使用模板引用变量来关联某个具体指令的引用。

高级 Angular 组件模式 (4)

2018-02-13
阅读 1 分钟
3.5k
命名冲突不仅存在于指令的选择器之间,同时也会存在于指令的Inputs和Outputs属性,当这些属性名一样时,Angular并不会进行提示,它会按原本的逻辑正常工作。这种情况有时候是我们希望看到的,有些时候却不是。

高级 Angular 组件模式 (3b)

2018-01-11
阅读 4 分钟
3.3k
Kent C. Dodds的第四篇文章中的一个重要元素在上一篇文章中没有涉及,使用withToggle高阶组件(HoC, react中的常用模式)可以将<toggle-on>、<toggle-off>、<toggle-button>组件中的公用逻辑分离出来。

高级 Angular 组件模式 (3a)

2018-01-11
阅读 2 分钟
2.2k
我们无法在其中方式多个<toggle-on>或者是<toggle-button>在同一个<toggle>中

高级 Angular 组件模式 (2)

2018-01-11
阅读 2 分钟
3.3k
我们可以把toggle抽象为一个复合组件,由三个新的组件<toggle-button>、<toggle-on>、<toggle-off>构成。

高级 Angular 组件模式 (1)

2018-01-11
阅读 1 分钟
3.3k
Angular到现在已经到5.x的版本了,对于MVVM框架我首先接触的是angularjs后来又转为react,之后换了工作因项目技术栈的原因又转换到之前的angularjs,在实际工作中实施了公司几个比较重要项目中前端的重构工作,这个过程逐步意识到,对于MVVM框架本身,在使用层面讲,掌握一些通用的模式是很有必要的,尤其现在已经很流行...