随着前端生态不断欣欣向荣的发展,NPM已成为了最大包管理分发平台。
但是问题也越来越多,比如一年前的left-pad事件,导致了大量的项目无法正常运行,正因为如此又出现了yarn,准备纠正一些问题。
最近接手了一个旧的项目,顺利的踩到了NPM中的一个坑,记录这次采坑经历,为今后时时敲响警钟。
项目中用到了dcodeIO/protobuf.js这个库解析数据,因为用到了json的描述文件,因此采用了light library
方式进行使用。
随着前端生态不断欣欣向荣的发展,NPM已成为了最大包管理分发平台。
但是问题也越来越多,比如一年前的left-pad事件,导致了大量的项目无法正常运行,正因为如此又出现了yarn,准备纠正一些问题。
最近接手了一个旧的项目,顺利的踩到了NPM中的一个坑,记录这次采坑经历,为今后时时敲响警钟。
项目中用到了dcodeIO/protobuf.js这个库解析数据,因为用到了json的描述文件,因此采用了light library
方式进行使用。
扩展运算符(spread)是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。
这个是ES6中的一个新特性,大大简化了代码。
ES6中的扩展运算符通过Babel,会转化如下的ES5代码。
VS Code相对其他编辑器,配置相对简单,而且插件也非常丰富,总之是越来越好用了,而且越用越顺手。
团队开发当然需要统一代码的规范,不然后续的代码比对会让人疯的。
这里要主推两个插件:EditorConfig for VS Code 和 ESLint
这段时间重新收拾了一下Github Pages上的博客信息,也更新了新版本的Hexo。
为了能更友好的对待搜索引擎,针对性的做了一些优化。
1、支持Rss订阅
需要安装hexo-generator-feed插件,hexo generate的时候就会在站点根目录中生成atom.xml,Rss订阅器有了这个xml后就能获取相关的文章内容了。
2、支持搜索引擎收录
安装hexo-generator-sitemap插件,hexo generate的时候会在站点根目录中生成sitemap.xml,这个xml的使用会在下面具体说说使用方式。
最近接到了一些用户的反馈,打开我们的客户端软件后,不仅登录不上,而且还会导致浏览器不能正常访问网络。不过这部分用户有一个共同的特征:用的XP系统。虽然XP已经落后这个时代了,但是也不能彻底放弃它,毕竟用户还在上面。
所以就开始了漫长的问题查找,首先要复现出用户的问题。在XP的虚拟中成功复现了问题,那么查原因就好办多了。
Qml中ListView,GridView等视图组件可以通过model属性绑定数据源,通过delegate进行渲染。model属性可以有多种选择,可以是ListModel类型,也可以是数字,或者JavaScript中的数组。Repeater组件中的model更是可以接收任意类型。
A ListView displays data from models created from built-in QML types like ListModel and XmlListModel, or custom model classes defined in C++ that inherit from QAbstractItemModel or QAbstractListModel.
A ListView has a model, which defines the data to be displayed, and a delegate, which defines how the data should be displayed. Items in a ListView are laid out horizontally or vertically. List views are inherently flickable because ListView inherits from Flickable.
Qml毕竟也是这几年才刚起来的,Qt Quick Control 1.x中的Qml组件不丰富,而且封装的功能相对简单,很多效果都需要自己重新实现。不过还是入了这个坑,毕竟Qt Quick Control 2.0刚出现不久,架构和底层变了,也是各种坑需要等着填。
1、Qml中的单例实现
|
|
DataChannel * channel = NULL;
static QObject datachannel_singletontype_provider(QQmlEngine engine, QJSEngine *scriptEngine)
{
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)
return channel;
}
qmlRegisterSingletonType
|
|
// 导入C++中注册的连接模块
import Demo.Channel 1.0;
Item {
id: channel;
property int state: Channel.getState();
}
```
3、Qml中使用JS文件
只需要在js文件中,添加`.pragma library`的标识,然后在Qml中通过别名的方式引用。如下:
`import "../js/Util.js" as Util`