美文网首页
前端技术架构与工程学习

前端技术架构与工程学习

作者: 天策上将记录学习的地方 | 来源:发表于2020-04-15 20:33 被阅读0次

前端技术架构与工程

一、Function 函数式编程

callBySharing1.js 值传参(Call by sharing)
callBySharing2.js 值传参(Call by sharing)
currying.js 函数柯里化(Currying)
highOrderFunction.js 高阶函数(High Order Function)
functionsComposition.js 函数组合(Functions Composition)
async.js async函数(Async Await)
generator.js genarator函数(generator)

二、Components 组件化

1)、Components Vs Modules

  1. 模块和组件均为可分离的、有独立功能的一种封装对象。
  2. 模块强调功能性,其功能性并非一定与视图相关。一个完整的应用程序由多个模块组成。
  3. 组件强调组合性,是一个视图片段的逻辑抽象。粒度比模块细,一个模块可以包含一个或多个组件。
  4. 编程语言基元 --> 对象 --> 组件 --> 模块 --> 引用程序

2)、Web Components

Web Components是W3C推出的一套用于封装具有复用性,互用性前端组件的技术规范,旨在提供一种标准的组件化模式。它是一系列技术的集合,包括如下几项:

  1. HTML template:组件的模版,一块不会被渲染的HTML片段。

  2. Shadow DOM:创建隔离作用域,实现DOM、样式和逻辑的封装。

2-1)、自定义元素

自定义元素(Custom Elements):创建自定义HTML元素或扩展内置元素。
元素与接口之间是多对多的映射关系。存在多个不同元素对应同一个接口类型,以及同一个接口对应多个不同元素的情形。这对扩展原生元素非常重要。
自定义元素API建立在一系列HTMLElement接口的基础上,通过创建一个继承HTMLElement接口对应类的派生类实现扩展。
HTML每个元素均对应一种接口类型,HTMLElement是所有接口的跟接口(Basic Interface)。

    <a>标签对应HTMLAnchorElement接口
    <div>标签对应HTMLDivElement接口
    <button>标签对应HTMLButtonElement接口
    <strong>、<section>、<code>等标签直接对应HTMLElement接口
2-1-1)、扩展原生元素
在原生元素现有的功能的基础上进行增量扩展是一种典型的渐进性增强思维,也是PWA积极提倡的一种实践模式。
示例参考:components目录下button的demo展示的就是扩展原生组件<button></button>的流程。
2-1-2)、新建独立元素
大多数HTML原生元素的划分均面向细粒度层面,功能单一并且有很强的组合性。
在实际工作中,往往需要将多种HTML原生元素封装为一些功能更丰富的组件,比如弹窗组件Dialog、导航组件Navigator等,这些组件被称为业务组件。
业务组件可以抽象为一个独立元素,他有自己的标签、样式和逻辑,不用于任何原生元素。
在React/Vue中,将一个业务组件进行封装后,可以使用类似HTML标签的语法声明,并且组件的数据可以通过标签属性传入组件内部。
使用自定义元素api创建一个独立元素的模式与之类似。
实例参考:components目录下circularRing的demo展示的就是新建一个独立元素的创建和声明方式。
2-1-3)、生命周期
React/Vue/Angular等框架的组件均有完整的生命周期,
并且在生命周期的里程碑阶段暴露出相应的钩子函数以便开发者编写有针对性的处理逻辑。都一定程度上借鉴了Web Components规范。
需要注意的是。组件或元素的生命周期并非是绝对线性的,甚至有时也并非是完整的。
实例参考:compones目录下lifeCircle的demo展示的就是结合生命周期创建的一个自定义元素my-dialog
demo收获:自定义元素缺少与全局隔离的命名空间

1. connectCallBack:当元素被加入HTML文档后,即于document建立连接进入connected状态后被一次性触发
2. disconnectedCallback:与connectedCallback相反,当元素被从HTML文档中删除进入disconnected状态后被一次性触发。
3. attributeChangedCallback:监听元素属性的变化,每次改变后均被赋值。
4. adoptedCallback:元素被从当前document移动到其他document后被触发,比如把iframe中元素移动到主文档中。

2-2)、Shadow DOM

Shadow DOM可以创建一个与全局隔离的独立作用域,全局作用域和独立作用域的CSS和JavaScript互不影响。
听上去类似iframe,两者均可用于作用域的隔离和封装。

Iframe Vs Shadow DOM

iframe封装了一个完整的执行上下文
Shadow DOM封装了一个较轻量的局部作用域

类似于DOM组成DOM Tree一样,Shadow DOM也组成了Shadow Tree;

Shadow DOM所在的子树作为全局DOM Tree的一部分而被称之为Shadow Tree。
在全局作用域内的DOM成为Light DOM。其共同组成的树形结构被称为Light Tree;

相关文章

  • 前端技术架构与工程学习

    前端技术架构与工程 一、Function 函数式编程 二、Components 组件化 1)、Components...

  • 前端工程师技术栈

    架构来自nice的前端大神,豆瓣的张克军 前端工程师技术栈 技术修养 技术修养是一个前端老司机最重要的能力...

  • 2019-01-17

    前端学习路径和方法 适合自己的前端学习方法前端技术的知识架构理解前端技术背后的核心思想 推荐入门 :《js高程》《...

  • 神算子教育招聘前端攻城狮啦

    极客团队、前沿技术 【前端团队】 神算子教育前端团队主要成员来自于阿里巴巴,擅长前端架构,前端工程效率、性能优化等...

  • 工程架构能力对于做好机器学习重要吗?

    摘要:做好机器学习到底对工程架构能力有要求吗?看看技术大牛如何说? 工程架构能力对于做好机器学习到底重要吗?可能很...

  • 电商网站前端架构 学习笔记(全是干货)

    1:前端架构的基本知识 1: 前端工程师必须会的一些技能 2: 前端架构基本知识 什么是前端架构?每个人对每个架构...

  • 架构技术要点

    5层架构体系:前端架构 应用层架构 服务层架构 存储层架构 后台架构 1 前端技术 nginx apache li...

  • 微前端技术

    一.微前端概念 前端微服务 二.常用前端架构 MPA(体验不好)SPA(体验号,但是体量大) 三.微前端架构 技术...

  • 第六届360前端星计划_前端工程化

    前端工程化 主讲人 田东东 360前端技术专家 奇舞团 一、什么是前端工程化? 目标 技术 原因 目标:在前端领域...

  • 成都web前端培训需要多长时间才能就业

    web前端培训需要多长时间?要学习哪些技术呢?一名合格的前端开发工程师,不单单需要掌握前端必须的各种技术,同时还要...

网友评论

      本文标题:前端技术架构与工程学习

      本文链接:https://www.haomeiwen.com/subject/ptihvhtx.html