LitElement(一)概述
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(一)概述的更多相关文章
- LitElement(六)生命周期
1.概述 基于LitElement的组件通过响应观察到的属性更改而异步更新. 属性更改是分批进行的,如果在请求更新后,更新开始之前,发生更多属性更改,则所有更改都将捕获在同一次更新中. 在较高级别上, ...
- LitElement(五)事件
1.概述 1.1 在何处添加事件监听器 您需要以一种可以在事件发生之前触发的方法添加事件监听器.但是,为了获得最佳的加载性能,应尽可能晚添加事件监听器. 你可以在以下位置添加事件监听器: 1.1.1 ...
- LitElement(四)属性
1.概述 LitElement管理您声明的属性及其对应的属性.默认情况下,LitElement将: 确保在任何声明的属性更改时进行元素更新. 捕获已声明属性的实例值.在浏览器注册自定义元素定义之前设置 ...
- LitElement(三)Styles样式
1.为组件添加样式 import { LitElement, css, html } from 'lit-element'; class MyElement extends LitElement { ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
随机推荐
- C# DES加密、解密
/// <summary> /// DES加密字符串 /// </summary> /// <param name="pToEncrypt">待 ...
- ES6扩展
模板字符串和标签模板 const getCourseList = function() { // ajax return { status: true, msg: '获取成功', data: [{ i ...
- Easyui-Treegrid使用注意事项-sunziren
版权声明:本文为sunziren原创文章,博客园首发,转载务必注明出处以及作者名称. 最近,工作中有一个网页需要用到前端框架easyui的treegrid组件,因此我对这个treegird研究了一段时 ...
- 在生产环境中碰见的JSP木马-sunziren
写在前面,本文仅做为技术交流的用途,请不要使用本文中的技术破坏他人的网站及系统,因为这是违法的!!!本人不负任何法律责任!!! 19年1月份,发现了一个JSP木马文件,当时觉得有点奇怪的是,这个文件没 ...
- BZOJ 4239: 巴士走读 最短路
显然,我们可以将询问按照规定时间从小到大排序,依次处理. 那么我们显然要求合法的点中从 $n$ 号点出发到达点 $i$ 的最迟时间,我们令这个为 $f[i]$ 而 $f[i]$ 显然可以用最短路来求. ...
- sklearn.metrics中的评估方法
https://www.cnblogs.com/mindy-snail/p/12445973.html 1.confusion_matrix 利用混淆矩阵进行评估 混淆矩阵说白了就是一张表格- 所有正 ...
- gulp常用插件之gulp-rev-rewrite使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-rewrite这是一款重写对由gulp-rev修订的资产的引用. 更多使用文档请点击访问gulp-rev-rewrite工具官网 ...
- Building a Space Station POJ - 2031 三维最小生成树,其实就是板子题
#include<iostream> #include<cmath> #include<algorithm> #include<cstdio> usin ...
- java网页日期选择框对应的星期有误
· 我用java写了个星期查询代码,有的日期对有的日期错,求帮忙看看哪里有问题!! import java.util.*;public class Test1 {public static void ...
- sqlserver中float转varchar时不显示科学计数法
MSSQL中 float转换为varchar 变成科学计数法解决方案 在系统初始化的时候,因为有同事,没有在数值型的数据前面加上 单引号,导致进入数据库后都变成float型我们需要做以下转换就能将 ...