云栖直播
LuLu UI是一个基于jQuery,针对PC网站,兼容IE8+或IE7+的前端UI框架,包含20+静态或动态UI组件。
最近在使用vue2.5+webpack3.6撸一个移动端音乐项目, 获取全部歌单json数据时遇到了接口对host和referer的限制 ,故不能直接在前端使用jsonp对接口数据的读取。
总结一些前端基础的知识,有些知识可能在前端面试的时候会问到,所以做个记录,也有助于其他人查看,如果有什么问题,可以指出,会积极修正。
Generator 函数 执行会返回一个迭代器(Iterator), 在迭代器上可以调用 next() 方法, 执行下一个 yield 或 return调用 next() 方法,会返回一个对象 {value: res, done: false}, value 的值 为 yield 之后表达式的.
闭包就是函数嵌套函数,可以理解为定义在函数内部的函数,本质上闭包是函数内部和外部连接的桥梁,但如果父函数定义的变量没有被子函数引用就不叫闭包 闭包让函数的变量都保存在内存中,内存消耗变大。使用不当会造成内存泄漏。 用途:读取函数内部变量 让变量保存到内存中 设置私有变量和方法
webpack4出了以后,一些插件变化很大,和之前的版本使用方式不一样,新手入坑,本篇将介绍如何从一开始配置webpack4的开发版本,对css,js进行编译打包合并生成md5,CSS中的图片处理,js自动注入html页,删除指定文件,提取公共文件,热更新等等。
Vue.js 的插件应当有一个公开方法 install 。这个方法的第一个参数是 Vue 构造器 , 第二个参数是一个可选的选项对象
什么是内存泄露?内存泄露是指new了一块内存,但无法被释放或者被垃圾回收。new了一个对象之后,它申请占用了一块堆内存,当把这个对象指针置为null时或者离开作用域导致被销毁,那么这块内存没有人引用它了在JS里面就会被自动垃圾回收。
webpack 是前端开发最常用的模块打包器之一,我们可能是使用github上提供的脚手架如react-boilerplate,也有可能根据自己的项目来写webpack配置。无论你是属于哪一种情况,你还是要熟悉webpack的相关配置才能更好的使用它。
很长一段时间,componentWillReceiveProps生命周期是在不进行额外render的前提下,响应props中的改变并更新state的唯一方式。在16.3版本中,我们介绍了一个新的替代生命周期getDerivedStateFromProps去更安全地解决相同的问题。
本文主要介绍数组常见遍历方法:forEach、map、filter、find、every、some、reduce,它们有个共同点:不会改变原始数组。
redux启示与实践,redux三原则及data flow
平时在项目开发中,经常会遇到诸多的时间处理,最开始选择moment,后来发现,其实项目中需要处理函数的场景比较单一,没必要引入moment,于是就开始了处理date的漫漫填坑之路。
之前在学习的时候有稍微捣鼓一下网易云音乐,主要是为了学习Vue,巩固基础知识,然后看到这个横向菜单,当然个人也喜欢看球,所以每次看腾讯NBA的时候总是会想这个是这样实现的,于是借助之前还没写完的demo,完成这个横向菜单的实现,废话不多说,先上效果图
Vuei18n 实际应用 不使用打包工具篇!
我最早接触的是reactjs,时间是在2016年,当时主要从官网学习,并且写了一些笔记。坦白讲,当时学习了一段时间,只是对里面的概念有点印象而已。也搞不懂怎么去具体的使用在项目里面,里面的思想也仅仅停留在字面上。
自从ES2015定稿以来,我们通过 Babel 等转换工具可以在项目中直接使用【模块】。前端模块化开发已经是不可逆转,在 ECMAScript module 之前我们通过 requirejs、seajs、LABjs,甚至最早的时候我们通过闭包来实现模块化开发。
Node.js 8 提供了新的工具函数:util.promisify,用于把形如 (err, value) => ... 的回调式函数转换为 Promise 版本。
在前端学习里面,很多人都是注重学习代码(html,css,js)。或者是一些框架,库(jquery,vue,react),或者是各种工具(webpack,gulp)。在以往的文章里面,或者自己和别人交谈,都有建议过别人多练,不要闷头就写代码,多深入了解当中的原理,学习其中的思想。
如果你追求极致的WEB体验,你一定在站点中使用过PWA,也一定面临过在编写serviceWorker代码时的犹豫不决,因为serviceWorker太重要了,一旦注册在用户的浏览器,全站的请求都会被serviceWorker控制,一不留神,小问题也成了大问题了。
现在 所有主流现代浏览器都已经支持 JavaScript 模块。本文将介绍如何使用 JS 模块,如何有效地部署,以及 Chrome 团队如何使 JS 模块在未来变得更好用。
新建文件夹webpack-exam,组织和建立文件如下:
浏览器的兼容性问题是个很庞大复杂的问题,很难找到四海皆准的办法,这里我们只是简单介绍下几种经典的处理兼容性问题的方法。
前端面试过程中,基本都会问到 Promise,如果你足够幸运,面试官问的比较浅,仅仅问 Promise 的使用方式,那么恭喜你。事实上,大多数人并没有那么幸运。所以,我们要准备好九浅一深的知识。
在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 系统外,最大的惊喜莫过于宣布推出免费跨平台的 Visual Studio Code 编辑器了!
作者本人在工作之余喜欢自己写一些东西玩玩, 虽然不是资深程序员, 不过也还是能够完成前端页面+后端接口+服务端部署的整个流程了。
最近做的业务展现在 app 重的 webview 里,app 提供的 webview 框架是默认有底部返回按钮的。pm 希望前端外部页面的框架保持不变,框架中展现的卡片页面可以点击返回按钮进行切换返回。于是想到了用一个简易的前端 router 来实现。
koa中的ctx包括原生的res和req属性,并新加了request和response属性 ctx.req = ctx.request.req = req; ctx.res = ctx.response.
当上传的文件相对较大时,用户可能需要等待较长的时间,这个时候前端如果没有任何提示的话,体验不是很好,如果有上传进度提示,就会好很多。而要在上传过程实时显示上传进度,则需要已上传的大小和文件总大小。
lazy-mock 是基于koa2构建的,使用lowdb持久化数据到JSON文件。只需要简单的配置就可以实现和json-server差不多的功能,但是比json-server更加灵活,后期可配置性更强,完全可以模拟真实后端业务逻辑。
在实现一个符合 Promise/A+ 规范的 promise 之前,先了解下 Promise/A+ 核心,想更全面地了解可以阅读 Promise/A+规范
JavaScript 采用动态类型,在编译期不对类型进行检查,等真正执行的时候由运行时来判断类型是否出现错误,这种特性有点像汇编里的计算一样,类型很弱,不同类型总是显式、隐式地转换。
在公司的一次小组分享会上,组长给我们分享了一个他在项目中遇到的一个问题。在一个嵌入 iframe 的系统中,当我们点击按钮展开 Dropdown 展开后,再去点击 iframe 发现无法触发 Dropdown 的 clickOutside 事件,导致 Dropdown 无法关闭。
上一篇文章 《webpack 快速构建 React 学习环境(1)》中介绍了构建一个最简单开发环境,这里接着完善这个开发环境,让它用起来更加的趁手。
八一八本次项目中使用的优化手段,以及自己从中获得的知识。由于本次项目较为复杂,模块较多,(当然不比大型电商网站),首页的请求就有8个,并且是精简之后的,稍有不慎,白屏现象就会很严重。体验极差。
NutUI 目前拥有近 50 个组件,还在持续扩充和打磨。除了对话框、日历、轮播、选项卡、轻提示、懒加载等通用组件外,还拥有不少电商特色的组件,比如商品价格、评分、商品数量选择、地区选择面板等等。如果你的项目里需要,也是可以使用的。具体的安装使用方法,可参考官网相关页面[1]。
一提到React,学过的人都会想到提高性能的两大神奇特色:虚拟DOM & diff算法。React diff作为Virtual DOM的加速器,其算法的改进优化是React整的界面渲染的基础,以及性能提高的保障。
正如你所知,动画在创建令人叹服的网络应用中扮演着一个关键角色。由于用户越来越注重用户体验,商户开始意识到完美,令人愉悦的用户体验的重要性,结果网络应用变得越来越重并且拥有更多动态交互的功能。这就要求网络应用提供更加复杂的动画来实现平滑的状态过渡贯穿于用户的使用过程当中。
本人对脚手架有点儿抵触(可能主要是对未知的恐惧),从开始学习 React 就走了自己搭建开发环境的路线,这里总结下搭建过程,希望能帮助和我一样不愿使用脚手架工具,但又急需一个练习环境的初学者。
mangom-we小程序基础核心组件库,让业务开发更加关注业务并且快速实现。
近日有个需求是做页面打印的,趁这个机会补一下比较冷门的浏览器打印知识。本文只讨论 Chrome、Safari、Firefox浏览器的情况。
一开始整个项目只有一个bundle.js,压缩之后达到了4M。导致首屏加载速度很慢,需要优化。
最近特别关注 vue-cli 3 的更新情况,有很多特别棒的新功能和特性,比如基于 UI 界面的项目管理器(参数配置、数据查看、插件安装一体的界面工具)、可配置的输出构建类型(App、库、组件、异步组件)、构建模式 Modern mode 等等。
vue-cli中模拟数据的两种方法
javascript有5种基础的内建对象(Fundamental Objects),Object、Function、Error、Symbol、Boolean,而Object/Function尤为特殊,是定义其他内建对象或者普通对象和方法的基础。
组件化应用构建是Vue的特点之一,因此我们在Vue的实际开发过程中会经常需要封装自定义组件,以提高开发的效率。 而组件在大部分情况下并不会孤立的存在,它必然会与父组件和兄弟组件产生数据的交互。所以在这里为大家总结两种组件数据交互的方式:EventBus和利用Vuex框架进行状态管理。
ReactiveX combines the Observer pattern with the Iterator pattern and functional programming with collections to fill the need for an ideal way of managing sequences of events. ReactiveX将观察者模式、迭代器模式和函数编程与集合结合起来,以满足管理事件序列的理想方式的需要。
态射是范畴内对象之间的映射关系。函子与它类似,函子是范畴与范畴间的映射关系,也就是可以通过一个函子,把一个范畴映射到另一个范畴。
在 web 设计中 icon 变得越来越重要,在网上有很多关于 icon 的资源,免费的付费的都有。在这里,介绍如何运用一种已经我们非常熟悉的方式 -- emoji ,来当成 icon 使用。
而我们也得出一个原因,因为精度丢失所致。下面我将一步一步地以最简单的0.1为例告诉你们精度为什么丢失,什么时候开始丢失的,这里没有深奥的公式,也没有晦涩的概念,只要你知道进制转换就能看懂了。