首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【阿里开发手册】所有的都必须添加创建者创建日期——Idea创建自动添加作者信息

一、前言 阿里开发手册强制的建议——所有的都必须添加创建者创建日期,我觉得很合适,自己写的过了几个月忘记,一看名字就知道是自己写的。出现问题,一看谁写,直接叫他解决bug很香啊!...二、阿里开发手册原话展示 ==【强制】== 所有的都必须添加创建者创建日期。...说明:设置模板,注意 IDEA 的@author {USER},而 eclipse 的@author {user},大小写有区别,而日期的设置统一 ==yyyy/MM/dd== 的格式。...正例: /** * @author yangguanbao * @date 2016/10/31 */ 三、IDEA设置模板 1. 打开设置 2....新建 四、总结 觉得阿里开发手册还是有很多地方挺好的,虽然进不了大厂,咱们开发规范跟着大厂走,总不会吃亏的。代码维护起来也轻松,你好他也好,哈哈哈哈!! ---- Q.E.D.

6.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

如何写成Strview.js之源码剖析

这时,继续往下看,JS代码,我们引入了Strview.js,并且我们调用了它一个createView方法,最后传入了一个对象。...剖析源码 本篇分析Strview.js版本1.9.0 首先,我们获取到源码,这里我们使用生产环境下的Strview.js,也就是上面实例的这个地址: https://cdn.jsdelivr.net...它们两个都是基于Proxy代理来实现数据的拦截与响应,MDN这样定义它。 Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截自定义(如属性查找、赋值、枚举、函数调用等)。...表面上看就是把一个导出对象标识一个 ES 模块。 随着 JS 不断发展 Node.js 的出现,JS 慢慢有了模块化方案。...但是两种模块格式混用的时候问题就来了,ES 模块 CommonJS 模块并不完全兼容,CommonJS 的 module.exports ES 模块没有对应的表达方式,默认导出 export

1.3K20

怎样创建一个谷歌扩展程序

谷歌扩展程序是个HTML,CSSJAVASCRIPT应用程序,它可以安装在谷歌浏览器上。...代码片段前使用await关键字,当在执行该代码片段,它之后的代码将停止执行。 在这个例子,我们await一个GET请求的响应,然后将响应值赋值给response变量。...Axios是一个很受欢迎的JavaScript库,它可以很好处理HTTP请求,并且可以浏览器平台Node.js平台使用。它支持所有的现代浏览器,甚至支持IE8。...covid19案例信息 步骤4:创建CSS文件 根据个人的喜欢,编写对HTML进行装饰 步骤5:创建MANIFEST.JSON文件 创建一个名为manifest.json的文件,然后将下面的代码添加到文件。...而对于name/version的值我们可以按自己需求赋值。 效果GIF图如下: 最后一步:添加到谷歌扩展程序 你可以点击chrome://extensions 跳转到谷歌扩展应用程序的管理页面。

60020

~-要-模-拟 Vue 响应式原理

我们可以使用 v-model 表单元素上创建双向数据绑定 数据驱动是 Vue 最独特的特性之一 开发过程仅需要关注数据本身,不需要关心数据是如何渲染到视图 2....发布订阅模式观察者模式 Ⅰ....Observer defineReactive 方法添加 // 创建 dep 对象收集依赖 const dep = new Dep() // getter // get 的过程收集依赖 Dep.target...compiler.js(即Compiler) 每一个指令/插值表达式创建 watcher 对象,监视数据的变化 compileText(node) { const reg = /\{\{(...Observer 数据劫持 负责把 data 的成员转换成 getter/setter 负责把多层属性转换成 getter/setter 如果给属性赋值新对象,把新对象的成员设置 getter/setter

45320

【踩坑】angularJS 1.X版本 ng-bind 指令多空格展示

,界面展示   因此逆向定位问题好些   通过Chromenetwork看到服务器返回的数据带有多个空格,查看html元素,元素代码是由多个空格,   初步判定是由于类似html直接赋值给dom元素...,html默认会把连续空格展示1个空格   2.2 分析代码走向,angular 1.4.8 ngBindDirective 代码如下   这里是采用textContent方法   textContent...'' : value.replace(/[ ]/g," ");      会被保留在html,这以前常用的jquery的html()或者innerHtml不一样   3.2 替换后的...value以innerHtml的方法放到DOM对象       element.textContent = isUndefined(value) ?...欢迎大家补充 参考:JS魔法堂:被玩坏的innerHTML、innerText、textContentvalue属性

1K30

手写 Vue (二):响应式

update函数更新视图,读取了data的text属性作为视图节点的文本内容。...descriptor 支持以下字段: configurable: Boolean,true,才能改变属性描述符,以及删除属性 enumerable: Boolean,true,可以通过for...可以是任何有效的 JavaScript 值 writable: Boolean,true,属性值,也就是 value 才能被赋值运算符改变 get: 属性的 getter 函数,当访问该属性,会调用此函数...以上文的data例,我们希望通过data.text = xxx的方式改变对象的属性值,更新视图,所以要重新定义属性text的描述符,set函数调用视图更新函数update。...读者可以将以下完整代码,保存到一个 html 文件,然后浏览器控制台中通过data.text = 'world'赋值的方式,查看视图的变化。

66320

Vue.js 2 深入理解

prop ,这里会包含所有父作用域的绑定(class style除外),并且可以通过 v-bind="$attrs" 传入内部组件 这些特性创建高级别的组件非常有用 // child: 没有...同时对模板执行编译,找到其中动态绑定的数据,从 data 获取并初始化视图,这个过程发生在 compile 同时定义一个 更新函数 Watcher,将来对应数据变化时 Watcher 会调用...更新函数 由于 data 的某个 key 视图中可以出现多次,所以每个 key 都需要一个管家 Dep 来管理多个 Watcher 将来 data 的数据一旦发生变化,会首先找到对应的 Dep ,通知所有...同一个 key 可能出现多次,每次都需要收集出来用一个 watcher 来维护它,这个过程依赖收集。多个 watcher 需要一个 Dep 来管理,需要更新由 Dep 统一通知。...} isEvent(dir) { return dir.indexOf('@') === 0; } eventHandler(node, exp, dir) { // 实例

1.1K50

利用 Web Animation API 制作一个切换英语单词的交互动画

整体开发过程分成 4 步,第 1 步用 CSS 实现页面的静态布局,后面 3 步用 JS 实现动画业务逻辑。...第 2 步实现单词中间字母 OO 的眨眼效果,第 3 步实现随机取单词的逻辑,第 4 步实现字符的切换动画。 眨眼动画字符切换动画都是用 Web Animation API 实现的。...虽然用 JS 写动画比用 CSS 要麻烦一些,但 API 提供了一些事件 handler,字符切换动画中就是利用事件机制来精确控制动画和在动画过程中加入业务逻辑的。 下面开始编码。...offset 是 @keyframes 每一帧指定的百分比值。...() //第2步:获得下一个单词 //第3步:字符切换动画 } 至此,当用鼠标点击文字,OO 就会眨动。

48840

详解 JavaScript 的模块、ImportExport

模块化编程 JavaScript 中出现模块的概念之前,当我们想要把自己的代码组织多个块,一般会创建多个文件,并且将它们链接单独的脚本。...甚至 DOM 名为 x 的 id 可能会 var x 存在冲突。 依赖管理:必须从上到下依次加载脚本来确保可以使用正确的变量。...接下来把前面的的 functions.js 文件更新模块并导出函数。每个函数的前面添加 export 。...实例化的都可以导出,只要它们有标识符就行: // 原始值 export const number = 100 export const string = 'string' export const...以 functions.js 文件例: functions.js export default function sum(x, y) { return x + y } script.js 文件

1.8K20

NPlayer 支持任何流媒体 B 站弹幕体验的视频播放器

安装好后可以命令行执行下面命令。 ffmpeg -i ....弹幕实现 NPlayer 的弹幕系统尝试了多种实现方案,最终选择了 CSS3 的 transform transition 方式,它也是 B 站弹幕默认选择的方案,当然 B 站还支持 canvas...的方式渲染,NPlayer 也有尝试,但是 firefox 上测试大量弹幕,会有一点小卡顿,所以最终选择了更优一点的 CSS3 的方案。...除了渲染方式,弹幕实现还有很多其他的难点,比如弹幕如何防碰撞,当视频倍速播放弹幕的速度也如何改变,视频的播放暂停事件会有一个很小的延迟,即使很小的延迟也会让弹幕暂停视频时有个卡顿位置跳跃问题。...file=/src/index.js

2.2K20

由重构进阶前端开发入门 (二) 事件与事件对象

不过日常需要对 IE8 这一浏览器进行支持,一般使用 jQuery 等现成做好了兼容性处理的框架,使用方便快捷,API 也是一目了然,非常容易理解。...DOM 对象与 jQuery 对象 上面 jQuery 的代码之前的原生 JS 代码等效,但有一点需要注意,也是新手经常混淆的。...现在,实现一个简单的幻灯片点击切换效果,只需根据事件对象相关参数来判断即可。 大致效果是:用户点击左右两侧 20% 区域切换展示上/下一章图片;点击中间区域不处理。 <!...切换当前显示的子元素 $item.removeClass('current').eq(curIndex).addClass('current'); }); 上述代码用原生 JS 写会复杂很多,因为需要离开...有兴趣的同学课余可以尝试一下,使用原生 JS 兼容 IE8 现代浏览器后,再对比上述代码,就能明白 jQuery 的强大之处了~ 附:可用的跨浏览器兼容的 jQuery 标准化事件属性 jQuery

1.6K10

造一个 copy-to-clipboard 轮子

大部分文章的做法是这样:创建一个输入框(input 或者 textarea),将复制文本赋值到元素的 value 值,JS 选中文本内容,最后使用 document.exec('copy') 完成复制。...这里的问题是,某些环境下文本输入框会存在一些怪异的行为,比如: 如果不是文本输入标签,需要主动创建一个可输入文本的标签(inputtextarea)然后将待复制的文本赋值给这个标签,再调用.select...另外,我们还要考虑到如果 activeElement input 或 textarea 的情况,deselect 要 blur,reselect 则要 focus 回来。...目前查了文档,有以下兼容问题: IE 11 下,format 这里只有 Text Url 两种 IE 下,copy 事件 e.clipboardData undefined,但是会有...兼容样式 创建和添加 mark 还要对其样式进行处理,防止页面出现 side-effect,比如: 添加删除 mark 不能造成页面滚动 span 元素的 space line-break

84530

Butterfly的Pjax适配方案

博主目前使用的是Butterfly主题,而最新版Butterfly主题已经将该教程方案集成主题中。只需主题配置文件搜索pjax,将其enable参数设置true即可开启。.../clock/js/clock.js"> 如果不是主题配置文件的inject引入,而是通过特定页面写入,可能不方便在标签处直接添加data-pjax属性,参考教程中有给出解决方案...(实质其实就是第4步的变种,可以跳过第3步直接参考第4步) 新版方案 butterfly主题中,有按照第4步中所述,pjax选择器添加了.js-pjax的名,也就是说,只要是名为js-pjax...集成插件js 可以考虑使用最新版Butterfly主题自带的pjax屏蔽设置(不推荐)。...但是这样子一来,如果有添加Aplayer的全局音乐或其他全局配置的话,会在切换到屏蔽了Pjax的页面被强制刷新,不符合流畅的用户体验。那就只能修改源码了。

1.2K40

从零到一手写迷你版Vue4

同时对模板执⾏编译,找到其中动态绑定的数据,从data获取并初始化视图,这个过程发⽣ Compile同时定义⼀个更新函数Watcher实例,将来对应数据变化时,Watcher会调⽤更新函数由于...data的某个key⼀个视图中可能出现多次,所以每个key都需要⼀个管家Dep来管理多个 Watcher将来data数据⼀旦发⽣变化,会⾸先找到对应的Dep,通知所有Watcher执⾏更新函数图片一些关键说明...$vm[exp] }}编译元素节点指令需要取出指令指令绑定值使用数据更新视图// 编译模板vue语法,初始化视图,更新视图class Compile { complie(el) { Array.from...data的keydep是一对一关系视图中key出现Watcher关系,key出现一次就对应一个WatcherdepWatcher是一对多关系实现思路defineReactive每个key定义一个...,给元素新增事件监听,使用bind修改监听函数的this指向组件实例// 自定义Vueclass CVue { constructor(options) { this.

53520

如何测试 React Hooks ?

Accordion,但当组件函数式却并没有 instance 的概念。...一旦你把组件 Accordion 重构函数式组件,那些测试就会挂掉。所以为了确保我们的代码库能在不推倒重来的情况下准备好 hooks 的重构,我们能做些什么呢?...这招被认为是最好的解决之道,因为操作实际上就是异步的,可从功效学的角度并不尽善尽美 -- 因为当前 jsdom(工作浏览器这样尝试的话实际上是有 bug 的。...结论 重构代码前可以做的最好的一件事就是有个良好的测试套件/类型定义,这样当你无意中破坏了某些事情可以快速定位问题。同样要谨记 如果你重构把之前的测试套件丢在一边,那些用例将变得毫无助益。...将我关于避免实现细节的忠告用在你的测试,让在当今的组件上工作良好的之后重构 hooks 照样能发挥作用。祝你好运!

1.5K10
领券