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> ...
随机推荐
- vue-infinite-loading 过滤器tab正确使用
业务逻辑涉及loadmore,filter和tab切换,框架是vue,使用vue-infinite-loading中的一点经历. identifier 一开始并没有重视这个参数,只是他的官网说iden ...
- DC-8靶机渗透实战
前言: 本文将讲述通过信息收集,再web站点的sql注入漏洞加john爆破登录后台,然后找到远程代码执行漏洞getshell,最后用exim4命令提权漏洞进行权限提升拿到最终的flag. 0x00 环 ...
- 【Jmeter】jmeter提取response中的返回值,并保存到本地文件--BeanShell后置处理器
有个需求,需要在压测环境中,创建几十万的账号数据,然后再根据创建结果,查询到某些账号信息. 按照之前我的做法,直接Python调用API,然后再数据库查询: 但是近期所有开发人员的数据库访问权限被限制 ...
- react+dva+antd+umi项目建立操作流程及知识点总结
0.1 引用 0.1.1 react官网 0.1.2 dva官网 0.1.3 antd-mobile官网 0.1.4 umijs官网 0.1.5 转载文章-umi操作手册 一.what are the ...
- CentOS 编译安装 PyCrypto
转载自:http://bugcharmer.blogspot.com/2012/07/building-pycrypto-on-amazon-ec2.html Step 1 - Install gcc ...
- Vue tinymce富文本编辑器
tinymce 官方为 vue 项目提供了一个组件 tinymce-vue 一.安装tinymce-vue npm install @tinymce/tinymce-vue -S 二.下载tinymc ...
- SQL语句中设置字段值取反操作
1.对布尔值取反,使用 ~. 如 update set status=~status where id=2; status的值为true || false. 2.对0.1 数值取反,使用abs() 取 ...
- paramiko 基于密钥文件登陆
首先密钥登陆远程的原理 client 端 将公钥放在远程机器authorized_keys: 使用 ssh-copy-id app@ip 接着在client机器生成密钥 使用ssh-keygen - ...
- css权重及计算
一.一般而言:!important--->行间样式--->id--->class | 属性--->标签选择器--->通配符 二.权重值 !important ...
- 《UNIX环境高级编程》源码配置——apue.3e 安装
转载从:http://blog.csdn.net/songshimvp1/article/details/51440545 网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说有些过时 ...