学习Object.defineProperty
Object.defineProperty,顾名思义,为对象定义属性。在js中我们可以通过下面这几种方法定义属性//(1)definesomeOnepropertynamegeekjc.name='geekjc';//oruse(2)geekjc['name']='geekjc';//oruse(3)definePropertyObject.defineProperty(someOne,'name',{value:'geekjc'})从上面看,貌似使用Object.defineProperty很麻烦,那为啥存在这样的方法呢?带着疑问,我们来看下Object.defineProperty的定义。1.whatisObject.definePropertyTheObject.defineProperty()methoddefinesanewpropertydirectlyonanobject,ormodifiesanexisitingpropertyonan
Angular17 Angular自定义指令
1什么是HTMLHTML文档就是一个纯文本文件,该文件包含了HTML元素、CSS样式以及JavaScript代码;HTML元素是由标签呈现,浏览器会为每个标签创建带有属性的DOM对象,浏览器通过渲染这些DOM节点来呈现内容,用户在浏览器中看到的内容就是浏览器渲染DOM对象后的结果。2指令的分类组件、属性指令、结构性指令具体的知识点请参见《Angular2揭秘》3指定义指令常用到的一些常量3.1Directive用于装饰控制器类来指明该控制器类是一个自定义指令控制器类3.2ElementRef作为DOM对象的引用使用,通过构造器进行依赖注入,它的实例代表标注有自定义指令那个元素的DOM对象;每个标注了自定义指令的元素都会自动拥有一个ElementRef对象来作为该元素DOM对象的引用(前提:在自定义指令的控制器中依赖注入了ElementRef)3.3Render2Render2的实例是用来操作DOM节点的,因为Angular不推荐直接操作DOM节点;Render2是从Angular4才开始支持的,之前的版
在做vue计算属性,v-for处理数组时遇到的一个bug
问题bug:Youmayhaveaninfiniteupdateloopinacomponentrenderfunction无限循环需要处理的数组(在**ssq**里):bonus_code:['01','19','25','26','27','33','10']计算属性computed:ssqRed:function(){returnthis.ssq.bonus_code.splice(0,6)},ssqBlue:function(){returnthis.ssq.bonus_code.splice(6,7)}v-for代码:
C#初学者们,请离代码生成器远点!!!
在程序开发的世界里,各路前辈们为了提高所谓的编码速度,搞出了各式各样的代码生成器,来避免所谓的重复的人为机械地粘贴和复制代码,以此来提高生产力。早几年前,我可能会认为这样的做法真得有用,特别是在编码速度上。是的,有时候代码生成器是可以帮助我们开发者生成模板化的,规范化的,大批量的机器代码。但许多人就将它当做了程序开发的利器,没有代码生成器完全没法写代码了,也没办法工作了。觉得自己会用几款代码生成器好像很牛的样子。得意的在老板们,或是不懂技术的技术经理们面前炫耀:“XXX们,你看我的工作效率多高,你们的需求,你们想要的功能我只需要简单的代码生成就可以快速地搞定。”。这种做法就好比别人把一头宰好并切好的牛肉放到你面前,再问你:“把这些牛肉放进冰箱需要几步?”答案你也许知道了吧?没错,三步。1.打开冰箱门;2.放牛肉进冰箱;3.关上冰箱门很简单是吧?那么,如果别人给你的是一整头牛,而不是切好的牛肉,再问让你把这头牛放进冰箱,你又怎么办呢?上面的这个
spring 5 webclient使用指南
之前写了一篇restTemplate使用实例,由于spring5全面引入reactive,同时也有了restTemplate的reactive版webclient,本文就来对应展示下webclient的基本使用。请求携带header携带cookie@TestpublicvoidtestWithCookie(){Mono
backbone 要点知识整理
backbone要点知识整理1.backbone是个mvc的库,官方文档说它是个库,而不是个框架。库和框架的区别就是,库只是个工具,方便你的项目应用,不会改变你的项目结构,而框架会有一套自己的机制,项目需要遵循框架的设计来实现,你要适应框架。backbone可以当作库或者框架来用都可以。当作库,你可以只使用它的部分特性,如事件;当作框架的话,可以使用它的完整的mvc,router,history。2.backbone的优点:a.实现了mvc结构,虽然controller里面只有router。b.可以通过事件监听,自动刷新viewbackbone的缺点:a.所有的业务逻辑都在view里,view太重;b.锚点路由不利于seo3.backbone的model,通过Backbone.sync来代理和服务器交互。也可以重写方法,把数据放到其它地方。4.collection也使用Backbone.sync将一个集合状态持久化到服务器。重写Backbone.sync来完成自定义处理;参考ackbone.localStorage
Koa源码分析
上篇文章写了如何阅读Koa的源码,粗略的过了一下Koa的源码,但是作为一个没有得出一个具体的结论,中间件的运行原理也不清楚,这里我们再仔细的过一遍Koa的源码.跟着例子过一遍首先还是先过一遍例子constKoa=require('koa');constapp=newKoa();app.use(asyncctx=>{ctx.body='HelloWorld';});app.listen(3000);起一个web服务,来一个HelloWorld,作为http模块的再封装,我们还是慢慢来挖掘它是如何封装的吧(无关的代码我都会删掉).首先是listen:listen(...args){constserver=http.createServer(this.callback());returnserver.listen(...args);}http模块我们都知道无非是http.createServer(fn).listen(port),其中fn带着req,res.根据上面的
vue.js之数据传递和数据分发slot
一、组件间的数据传递1.父组件获取子组件的数据*子组件把自己的数据,发送到父级*vm.$emit(事件名,数据);*v-on:@示例用法:当点击send按钮的时候,“111”变成“我是子组件的数据”
JavaScript
2018-01-20 发布
箭头函数this深刻理解
先来谈谈ES5中的this在ES5中,每个函数在被调用时都会自动取得this这个特殊的对象。因此,每个内部函数不能访问到外部函数的this对象。(跟变量访问一样,如果局部环境存在某个变量,就不会去搜索全局环境的同名变量)。**this对象是在运行时基于函数的执行环境决定的。**执行环境:a.全局环境运行在全局上下文(在任何函数体外部),this指向全局对象,并且,无论是否是在严格模式下,this都指代全局对象。在浏览器中,this指向window对象。console.log(this===window);//true;b.函数环境在函数内部,this的值取决于函数是如何调用的。直接调用,非严格模式下,this默认指向全局对象。不管调用的函数是在全局函数还是局部环境。functionapp(){console.log(this===window);//true}app();//全局调用functionfoo(){functionbar(){console.log(this===window
普通函数与箭头函数的this的区别
普通函数中的this:this总是代表它的直接调用者,例如obj.func,那么func中的this就是obj2.在默认情况(非严格模式下,未使用'usestrict'),没找到直接调用者,则this指的是window3.在严格模式下,没有直接调用者的函数中的this是undefined4.使用call,apply,bind(ES5新增)绑定的,this指的是绑定的对象箭头函数中的this默认指向在定义它时,它所处的对象,而不是执行时的对象,定义它的时候,可能环境是window(即继承父级的this);下面通过一些例子来研究一下this的一些使用场景示例1结果是:window匿名函数,定时器中的函数,由于没有默认的宿主对象,所以默认this指向window问题:如果想要在setTi
node.js之文件操作
与其他模块相同,首先引入fs文件操作模块,使用require引入。node.js的文件操作与php类似,都是一些读,写,复制,删除等一些基本操作,但他比php要简单点,就三个参数a:追加;w:写入;r:读取,php除了有这第三种之外还有a+,w+等操作,较为复杂点。文件操作分为两大块:文件的操作与文件夹的操作一、文件的操作1.创建文件flag对应的有三个参数:a追加w写入r读取注意区分a与w的区别:a:是追加,在文件中添加新的东西不覆盖文件原有的东西;w:写入,添加新的内容覆盖文件中原有的内容;两种方式创建文件fs.writeFile("2.txt","我是2.txt文件",{flag:"a"},function(err){if(err){console.log(err);}else{console.log("写入成功");}})fs.appendFile("2.txt","我是追加的字符",function(err){if(err){returnconsole.log(err);}else{console.log("追加
小白的静态博客搭建
在repositoryname中填入username.github.io。(username指的是前面owner的用户名,比如我这里应该填wenjie710.github.io。)然后点击最下面的createrepository即可。2.安装git,nodejs,hexo下载地址:git官网下载:https://git-scm.com/download/winnodejs官网下载:https://nodejs.org/en/download/以上两个工具都是直接下载的exe文件,点击安装即可。安装完成之后在文件夹中点击鼠标右键会看到下拉菜单中有一个GitBash,这是一个类似于Liunx的终端,在里面可以模拟Linux下的终端进行操作。git和nodejs安装完成之后才能安装hexo。hexo的安装十分简单,只需要在命令提示符(cmd)中输入以下命令即可。npminstall-ghexo-cli3.配置环境3.1配置ssh打开GitBash,执行下面的命令生成SSH访问私钥及公钥。ss
如何创建一个桌面快捷方式
图片来自网络前言如何实现像淘宝一样将店铺的快捷方式添加到桌面,实现点击桌面快捷方式直接打开淘宝跳转到指定店铺。最近项目有这个需求,记录一下如何实现的,方便以后查看。首先来了解以下几个问题:URLSchemes是什么DataURIScheme是什么如何创建桌面快捷方式1.URLSchemes是什么通过对比网页链接来理解iOS上的URLSchemes,应该就容易多了。URLSchemes有两个单词:URL,我们都很清楚,http://www.apple.com就是个URL,我们也叫它链接或网址;Schemes,表示的是一个URL中的一个位置——最初始的位置,即://之前的那段字符。比如http://www.apple.com这个网址的Schemes是http。根据我们上面对URLSchemes的使用,我们可以很轻易地理解,在以本地应用为主的iOS上,我们可以像定位一个网页一样,用一种特殊的URL来定位一个应用甚至应用里某个具体的功能。而定位这个应用的,就应该这个应用的URL的S
JavaScript练习2
JavaScript练习22018-01-2016:44byCN_Jason,...阅读,...评论,收藏,编辑今天做了一些JS数组的练习题一、往数组中插入一个数字varattr=[1,2,3,4,5,6];varc=7;for(vari=0;i
(源码)解决Android的WebView加载失败(404,500),显示的自定义视图,
好多朋友会在Android开发过程中遇到使用WebView加载html页面出现404,500等错误页面,也有好多人想自定义这个错误页面,但是在6.0之前,大家觉得自定义错误页面就不好处理了;之前一直使用在WebView加载时,根据onReceivedError()判断网页是否加载成功,然后做相应的操作,但是最后发现,在一些情况下,html页面加载失败了,onReceivedError()方法却并没有执行。最后进过努力,想出了一个比较笨,但是我又觉得比较有效的方法。下面来给大家简单说一说:不知道大家发现没有,在所有的加载错误的html页面中,html的标题title可能都会包含错误信息,比如说“error”,这样的话我们就可以在这个html的标题title上做文章了。1.先给大家说说怎么获取这个html的标题title(1).Android应用开发的时候使用WebView这个组件的过程中可能会接触到WebViewClient与WebChromeClient,那么这两个类到底有什么不同呢WebViewClient主要帮助WebView处理各种通
.net的retrofit--WebApiClient底层篇
前言本篇文章的内容是WebApiClient底层说明,也是WebApiClient系列接近尾声的一篇文章,如果你没有阅读过之前的的相关文章,可能会觉得本文章的内容断层,WebApiClient系列文章索引:WebApiclient的面向切面编程我来给.Net设计一款HttpClient.Net45下HttpClient的几个缺陷.net的retrofit--WebApiClient库.net的retrofit--WebApiClient库深入篇.net的retrofit--WebApiClient底层篇库简介WebApiClient是开源在github上的一个httpClient客户端库,内部基于HttpClient开发,是一个只需要定义c#接口(interface),并打上相关特性,即可异步调用http-api的框架,支持.netframework4.5+、netcoreapp2.0和netstandard2.0。WebApiClient是我2017年看到java的retrofit库之后,决心给.net打造的一款面向切面的httpc
Visual Basic快速入门
Basic语言的全名是Beginner’sAll-purposeSymbolicInstructionCode(初学者通用的符号指令代码),是几十年前流行过的一门语言。我高中时候一门数学选修课中使用的也是Basic语言。我还记得当时我为了使用Basic语言,还从网上下了一个简陋的QBasic工具。当时第一次接触编程的我对编程语言充满了兴趣。当然在现在,Basic语言已经基本没什么用了。现在还在使用的Basic语言大概就是微软的VisualBasic了。今天就来介绍一下VisualBasic语言。需要注意的是,VB语言运行在微软的CLR上,所以如果你对C#比较熟悉的话,学习VB就很简单了。HelloWorld照例,第一个项目自然应该是HelloWorld。打开VisuallStudio,创建一个VB项目,然后就会出现如下图所示的代码。来解释一下HelloWorld的代码。首先第一行是导入类库,和C#、java的import语句是一个道理。然后下面定义了一个Program模块,其中定义了Main函数,在函数中输出Hello
每日一博 | 为什么说 Web 开发和 Vue.js 是如此的有趣?
我想告诉你,我开始享受使用Vue.js和进行前端开发的故事。这不应该被理解为一篇关于为什么Vue.js可能比React,Angular或任何你正在考虑的其他Web框架更好的文章。Vuejs是令人惊叹的,但我们生活在一个作为前端开发人员同样令人惊叹的时代。如果你几年前和我交谈过,我会把自己定位为一个后端开发人员,掌握服务器和数据库管理。面向对象的语言,java和c#,我想找到一种自己需要交付程序时使用的唯一的开发语言,我逐渐了解到更多关于.NET和SQL服务器的堆栈技术。当时我有这样一个概念,前端开发者只是使用右脑的附庸风雅的人,并不是“真正的”编程。但是,在我最后一次求职,选择很少。特别是工作面试,我看到了自己是如何失败的。那次失败非常令人沮丧,但我从中吸取了不少教训。我获得了一个职位,利用了我在SharePoint的经验。我在SharePoint的经验并不特别:用GUI、工作流等设计页面这个不是我理想中的工作,而是为了生活不得不做的工作。当我刚开始的时候,我接触过像我过去做过的任何类似的项目。我依靠GUI设计用户界面。幸运的是,使
Angular整合zTree
Koa源码分析
上篇文章写了如何阅读Koa的源码,粗略的过了一下Koa的源码,但是作为一个没有得出一个具体的结论,中间件的运行原理也不清楚,这里我们再仔细的过一遍Koa的源码.跟着例子过一遍首先还是先过一遍例子constKoa=require('koa');constapp=newKoa();app.use(asyncctx=>{ctx.body='HelloWorld';});app.listen(3000);起一个web服务,来一个HelloWorld,作为http模块的再封装,我们还是慢慢来挖掘它是如何封装的吧(无关的代码我都会删掉).首先是listen:listen(...args){constserver=http.createServer(this.callback());returnserver.listen(...args);}http模块我们都知道无非是http.createServer(fn).listen(port),其中fn带着req,res.根据上面的