1、一些感悟

自从踏入编程领域开始,从html,css,JavaScript,jQuery,bootstrap开始接触前端,经常用NodeJS,ejs等模板语言来写个简单的页面,感觉蛮简单的,也不怎么放在心上。有一天看了看React的代码,感有种懵逼的赶脚,但也就当JS看了,然而什么虚拟DOM,Native,单向数据流,组件就不太懂了,感觉我可能有点落后了。故打算补充一点前端知识,以后看见别人的代码不至于一脸懵逼。

2、LitElement Start

今天阅读webrtc屏幕共享的example,忽然发现main.js的代码风格由前面几个的纯js变成了自定义组件的风格,一下子看的有点凌乱,于是决定就从这里开始,代码中引用了如下一行

import {LitElement, html} from 'https://unpkg.com/@polymer/lit-element@0.6.2/lit-element.js?module';

拿到自己的环境中一试,果断运行不起来,查了一下发现这个LitElement原来是个前端组件工具,官网地址,先运行其给的 Quick start体验一下,但是一运行

npm install -g Polymer-cli

安装环境,发现需要 下载puppeteer和Chromium,有时有可能下载比较慢,需要耐心等待,或换个时间段下载

> puppeteer@1.18.1 install C:\Users\JiXiaoHua\AppData\Roaming\npm\node_modules\polymer-cli\node_modules\puppeteer
> node install.js Downloading Chromium r672088 - 141 Mb [=========== ] 53% 2529.8s

关于Puppeteer,见 Puppeteer 初探,前面测试Electron和NWJs的时候用到过这个东西

在我浏览Puppeteer的时候忽然发现了如下一段话,可以换这种方法

安装puppeteer时如果无法下载Chromium,可以使用[puppeteer-cn](https://npm.taobao.org/package/puppeteer-cn)代替的。这个包先检查你本地chrome是否大于59,再决定是否安装Chromium,并且使用国内源安装,速度很快且保证成功。

然后装完了又开始这个,不知道为什么,这个是真个不动,selenium是一个web应用测试工具,参考https://www.jianshu.com/p/3aa45532e179,试了几次都不行,所以我直接ctrl+c掉了,并不需要这东西,其实上面的Puppeteer也应该是不需要的,LitElement好像是对Polymer的简化,所以Polymer构建工具是必须的,Polymer是个和前端三大框架同级的东西,不过不怎么火,官网地址

----------
selenium-standalone installation starting
----------

然后克隆代码,安装依赖,运行静态服务就可以访问了

npm install -g polymer-cli
git clone https://github.com/PolymerLabs/start-lit-element
cd start-lit-element
npm install
polymer serve

这里关于ploymer server命令相关的东西需要注意一下,详见官网命令部分文档,可以自定义指定启动端口,IP,build构建目录等,然后两个firebase文件是用来部署在谷歌云服务器上的,对我们来说没啥作用。关于目录结构和相关文件的作用见https://blog.csdn.net/weixin_43171402/article/details/82588145

要部署项目文件,比如说可以选择直接将ploymer build的路径指向node express的public目录,或其他http/https服务器上相关目录下,这样一来就不用server和app起两个服务了。

3、用于生产环境的LitElement构建

虽然用ploymer构建工具可以初始化一个项目并build,但是LitElement可以说是逐渐从ploymer中独立了出来,使用ploymer的构建方式显得有些累赘,好在官网提供了使用Rollup打包的例子,见文档示例项目,这才是LitElement的正确使用方法。

可以发现Bable+Rollup打包后的项目非常的简洁,没有ploymer相关的东西,只是将依赖模块做了路径转换,并且可以用serve工具启动预览项目,serve文档见npm说明,这是一个很方便的启动http服务的工具,可以自动检测空闲端口。比如说有个html文件夹,下面有一组静态资源,全局安装serve后只需要serve html就可以启动一个静态资源服务器,比node http和tomcat等更加方便。

4、实用的Rollup打包教程

有基本使用方法,多文件输出等等,必备技能,详见:https://segmentfault.com/a/1190000010628352

关于组件化的文章:大话前端组件化

LitElement(一)概述的更多相关文章

  1. LitElement(六)生命周期

    1.概述 基于LitElement的组件通过响应观察到的属性更改而异步更新. 属性更改是分批进行的,如果在请求更新后,更新开始之前,发生更多属性更改,则所有更改都将捕获在同一次更新中. 在较高级别上, ...

  2. LitElement(五)事件

    1.概述 1.1 在何处添加事件监听器 您需要以一种可以在事件发生之前触发的方法添加事件监听器.但是,为了获得最佳的加载性能,应尽可能晚添加事件监听器. 你可以在以下位置添加事件监听器: 1.1.1  ...

  3. LitElement(四)属性

    1.概述 LitElement管理您声明的属性及其对应的属性.默认情况下,LitElement将: 确保在任何声明的属性更改时进行元素更新. 捕获已声明属性的实例值.在浏览器注册自定义元素定义之前设置 ...

  4. LitElement(三)Styles样式

    1.为组件添加样式 import { LitElement, css, html } from 'lit-element'; class MyElement extends LitElement { ...

  5. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  6. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  7. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  8. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  9. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

随机推荐

  1. 关于新版vue-cli安装json-server在build文件里没生成出dev-server文件

    今天在安装json-server时遇到一个问题,build文件里并没有生成dev-server.js文件, 开始是怀疑配置有问题,或者安装不正确,然后重新安装了两三次,还是这样,郁闷.. 通过查询资料 ...

  2. function_use

    # 函数说明文档,help(len) def sum1(a, b): """ 求和函数sum1 :param a: 参数1 :param b: 参数2 :return: ...

  3. MyBatis的延迟加载和缓存机制

    延迟加载: 什么是延迟加载: MyBatis中的延迟加载,也称为懒加载,是指在进行关联查询时,按照设置延迟规则推迟对关联对象的select查询.延迟加载可以有效的减少数据库压力. MyBatis根据对 ...

  4. 复习mongoose的基本使用

    mongodb参考 mongoose官网 mongoose用起来更便捷,更方便些

  5. 第31届IMO 第2题

    题目 设n>=3,考虑一个圆上由2n-1个不同点构成的集合E.现给E中恰好k个点染上黑色,如果至少有一对黑点使得这两个黑点之间的弧上(两段弧中的某一个)包含恰好E中的n个点,就成这样的染色方法是 ...

  6. 【剑指Offer】04、重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  7. ansible-yaml语法

    1. 基础语法 - yaml结果通过空格来展示 - 数组使用"- "来表示 //注意:-后边要有一个空格 - 键值对使用": "来表示 //注意::后边要有一个 ...

  8. 【Vue2.x笔记1】数据响应式原理

    1.Object.defineProperty Vue2.x 使用Object.defineProperty 将 Vue 实例中的data对象全部转为getter/setter.在内部让 Vue 能够 ...

  9. 小白月赛22 E : 方格涂色

    E:方格涂色 考察点 : 思维,模拟 坑点 : long long 其他的好像没什么,读懂题意就可以 AC 不要被样例画的图所迷惑 Code: #include <vector> #inc ...

  10. 使用ADO.NET 访问数据库

    一.ADO.NET :用于连接数据库的技术 1.ADO.NET分为两大组件 DataSet:数据集 .NET FRAMWORK :用于连接到数据库,发送命令,检索结果 2.ADO.NET四大核心对象 ...