自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 angular 模块 @NgModule的使用及理解

@NgModule 的重要作用在 Angular 中,NgModule 有以下几个重要的作用:NgModule 最根本的意义是帮助开发者组织业务代码,开发者可以利用 NgModule 把关系比较紧密的组件组织到一起,这是首要的。 NgModule 用来控制组件、指令、管道等的可见性,处于同一个 NgModule 里面的组件默认互相可见,而对于外部的组件来说,只能看到 NgModule 导...

2019-03-19 15:50:16 14374

原创 从有赞UI组件库看CSS BEM命名规范的好处

1.什么是BEM命名规范?文字定义不说,看dem0:解释:block 代表了更高级别的抽象或组件。 .block__element 代表.block的后代,用于形成一个完整的.block的整体。 .block--modifier代表.block的不同状态或不同版本。用bem命名的好处是:1.规定。适合前端团队的CSS写法规范化。2.既然是规范,就特别适合阅读,让CSS...

2020-05-02 16:41:26 1032

原创 《人性的弱点》阅读心得1

1.人性的弱点一:每个人都希望得到对方的尊重。由于这个弱点,导致与人争论的时候,要尽量避免跟对方争执。要学会先认可对方的观点,先语气平缓,试着站在对方的角度。然后在此基础上再试着表达自己的观点,希望对方可以试着思考一下,表达对对方理解的感谢。通过这一人性弱点,让我明白,很多时候,争论胜利如果不是目的的话,让对方“赢得”争论反而才是真正的赢。才有可能让对方从心底去思考你的观点,甚至接受你的...

2020-05-01 20:25:37 368

原创 编译原理复习第一篇

1.编译原理的“前端”和“后端”“前端”指的是编译器对程序代码的分析和理解过程。它通常只跟语言的语法有关,跟目标机器无关。而与之对应的“后端”则是生成目标代码的过程,跟目标机器有关。整个编译过程简要,如图:2....

2020-04-30 22:24:03 360

原创 js防抖和节流

这篇文章不错:https://www.cnblogs.com/momo798/p/9177767.htmlhttps://mp.weixin.qq.com/s/Vkshf-nEDwo2ODUJhxgzVA

2019-09-25 10:37:48 194

原创 Vue 实现的递归组件如何向外传递事件和数据

一.递归组件向外传递数据直接用$emit是无法实现的。因为是递归的原因。2.解决方法:1方法1::用provide,inject方法实现。这种实现方法是实现爷爷组件和孙子组件通信的常用方法之一。但是逻辑上,爷爷组件和孙子组件之间是有耦合关系。如果组件封装需要尽量实现解耦,这种方式是有缺点的。2.方法2:用eventBus实现:这种方法用在兄弟组件之间通信很常见。当然也可以用在爷爷...

2019-09-15 18:48:44 5134 2

转载 git stash详解

参考:https://blog.csdn.net/stone_yw/article/details/80795669

2019-07-24 15:34:41 242

原创 JavaScript shell安装

1.http://ftp.mozilla.org/pub/firefox/nightly/latest-oak/下载需要的安装包并解压;2.将jsshell-win64如E:\software\jsshell-win64配置到系统的环境变量下,即可直接打开cmd运行js代码(打开cmd后输入js就可以进行运行了)。编写一个Js文件。然后用js shell执行...

2019-06-21 10:00:12 489 1

转载 webpack4 常用配置

参考:http://www.imooc.com/article/287156

2019-05-29 09:37:34 185

原创 React 和 Vue的区别

一.共同点都是mvvm 框架,都是数据和视图分离,修改视图,不是通过直接修改,而是通过修改数据来驱动视图变化。这是MVVM框架区别于jq直接操作dom的区别。Vue修改数据:this.data = newVal这种形式就可以修改。而React 需要通过setState来修改2.两者在模板渲染的实现上都是使用VNode的思想。Vue的template最终解析成一个render函...

2019-05-26 20:06:19 236

原创 对JS深拷贝浅拷贝的理解

这篇文章写得很好:https://www.cnblogs.com/echolun/p/7889848.html总结:1.深拷贝浅拷贝只有在拷贝引用类型的时候才有这个概念。2在实际工作中,深拷贝的考虑是无处不在的,在拷贝对象的时候,一般无论目前是一层引用,还是引用里面还有引用,都直接用深拷贝。3.JSON.stringify,JSON.parse这种方法使用起来很简单。对比直接写...

2019-05-25 20:24:00 797

原创 微信小程序使用echart层级问题(IOS)

问题场景:在开发小程序的时候,用到了echart。echart是用canvas画的。在小程序里面层级是最高的。所以出现了这个问题:而实际图是这样的:也就是说手指滑动图表的时候。整个图会上滑动。问题原因:页面中布局用了fixed。而ios在fixed上的坑就是:层级高的只要触摸滑动,层级低的内容就会跟着滑动。通常解决方法是:层级高的加catchtouchmove=...

2019-05-23 16:44:05 3544

原创 如何理解javascript的原型链

对于原型链的理解:1.js实现封装继承的方法。2.关键点:构造函数生成的实例对象的__proto__指向构造函数的protorype属性。利用这个特点,js实现了构造函数的数据与方法共享给实例对象。 Instanceof 的原理也是原型链。ES6的 class只是语法糖,本质还是原型链的实现方式。原型链的图:js实现 面向对象编程方式的demo:functi...

2019-05-23 15:35:57 250

原创 前端性能优化之图片

图片优化既是一门艺术,也是一门科学,图片优化是一门艺术,是因为单个图片的压缩不存在最好的特定性方案,而图片优化之所以是一门科学,是因为许多开发得很出色的方法和算法可以明显减小图片的大小。要找到图片的最优设置,需要按照许多维度进行认真分析:格式能力、编码数据内容、像素尺寸等。优化方法总结:1.能不用图片解决的就不用备选技术CSS效果、CSS动画。提供与分辨率无关的效果,在任何分辨率和...

2019-05-19 15:22:18 382

原创 Vue源码阅读笔记(三) VNode

VNode的结构:export interface VNode { tag?: string; data?: VNodeData; children?: VNode[]; text?: string; elm?: Node; ns?: string; context?: Vue; key?: string | number; componentOptio...

2019-05-18 19:39:42 386

原创 Vue源码阅读笔记(二) vue实例挂载$mount

vue实例创建的最后一步是$mount。$mount的核心是mountComponent。mountComponent的核心思路:生成一个updateComponent函数,updateComponent用于生成一个虚拟Dom树,然后执行_update函数。mountComponentupdateComponent会传给mountComponent还生成一个Watcher对象,u...

2019-05-18 19:17:13 411

原创 Vue源码阅读笔记(一)new Vue 实例

一.new Vue 发生了什么?很简单:初始化传入的options,生成一个vue实例function Vue (options) {this._init(options)}二._init做了什么?Vue.prototype._init = function (options) { var vm = this; // a uid vm._uid = ...

2019-05-18 18:10:08 266

原创 实现一个简单的类 Vue 框架(二) —— 数据的绑定之修改可监听的数据绑定方法

Vue是MVVM框架,也就是M(数据)的变化能够驱动V(模板)的变化,所以数据修改可响应的实现是一个关键点。实现数据变化可响应的方法很多,事件驱动,广播,订阅等方法,而Vue使用的是js的原生API Object.defineProperty。这种实现方法的优点是:实现简单。缺点是:只能兼容到IE9以上。针对上一篇文章:https://blog.csdn.net/SunShinessx...

2019-05-17 19:32:43 238

原创 实现一个简单的类 Vue 框架(一) —— 数据的绑定之简单粗暴方法

Vue框架的核心概念一个是数据绑定,一个是虚拟Dom;先实现数据绑定。本框架命名为Sue。旨在模拟实现一个类Vue一.最简单粗暴的数据绑定方法要点:1.call的使用。2.for in代码:/* 最简单粗暴的数据绑定 */function Sue(options) { initData(this,options) if (typeof options.read...

2019-05-17 15:12:10 421

原创 如何debug Vue源码

1.首先用Vue-cli或者直接构建webpack引入带compile 版本的Vue。让vue项目可以跑起来。项目可以很简单,最主要是跑起来即可2.其次,查看webpack alias 配置:这里说明我们在import vue的时候,引入的vue源文件是在哪里:从webpack配置中可以看出,vue是引入node_modules的Vue-->dist-->vue.esm....

2019-05-17 11:16:04 2250

原创 css实现不占大小的边框

问题场景:点击item加边框,加打钩。出现的问题:点击之前在同一行,点击后变成两行。这里如果用border来实现边框,最后还是会出现挤下来的情况,因为border会占大小,而且这里不能用box-sizing,因为item的宽度不固定。所以用box-shadow: 0 0 0 4rpx #03A9F4 来实现。不占大小的边框。...

2019-05-16 18:47:40 5156

转载 快速删除node_modules文件夹

1.安装(推荐全局安装):npm install -g rimraf2.使用:cd xxx [the folder which includes node_modules folder]rimraf node_modules注意事项:该方法也可用于删除其他文件,类似于Windows的彻底删除Ctrl+Shift+Delete,一旦删除就不能恢复(回收站里没有),所以删除之前一定要...

2019-05-13 10:53:29 210

原创 微信小程序开发小结

最近开发了微信小程序,做个小结,方便后面查阅:一.自定义头部导航:原来默认的头部导航,只能设置字体颜色,背景色,其他不能设置:在page的json文件里面配置:如想自定义导航头,首先需要在app.json里面加上这句:然后自定义导航头组件:一般是fixed定位。所以导航头下面的页面布局,需要设置一个padding-top = 自定义导航头的高度接下来有个坑:就是...

2019-05-08 15:34:02 1166

原创 微信小程序使用 ECharts的方法

参考文档:https://github.com/ecomfe/echarts-for-weixin总结:1.复制文件夹ec-canvas到本地项目1.使用方法:在需要使用的page的json文件里面配置:然后在该页面的js文件里面配置:echart的使用坑:1.2.echart使用canvas来绘制图表,而can...

2019-05-08 11:40:16 4551

原创 HTTP权威指南阅读笔记---URL

一.URL是什么?文字意义:统一资源定位符。是URI对的一个子集,目前互联网上所有资源基本是用URL定位访问的,另外一种资源定位方式URN还在摇篮中,只是提供了一个概念,并没有较多的实践。二.URL的作用是什么?互联网上的资源太多太多,有动态的,有静态的,而且访问的客户端和资源所在的位置,可能天南地北?如何有效地访问到这些资源?统一资源访问方式?URL就是帮我们做这样一件事情的。U...

2019-05-03 09:55:19 269

原创 操作系统复习系列

系列文章:所有关于概念定义,纯属个人理解。不做严格性争论,比如什么是操作系统,只是个人理解!一.什么是操作系统个人理解:操作系统,处于裸机外层,所有软件应用的最底层。作为运行编译软件,各种应用软件的支撑。从实现用户功能上来说,操作系统本质就是为了让用户更好地使用计算机,所以操作系统提供了良好的用户界面,同时必须保证用户使用的安全性可靠性和用户更多功能的拓展性。从系统管理员的角度,计算机...

2019-04-26 17:34:10 523

原创 一个自适应的微信小程序自定义导航栏组件

weixin-navigation-bar因为小程序原生导航栏的一些限制,比如:不能设置字体大小,ios标题居中而安卓居左,从非首页启动小程序返回首页菜单不明显,屏幕空间不能最大化使用。因此微信开放了小程序自定义导航栏,允许用户最大化的使用屏幕空间。但是自定导航栏不支持只指定某些页面使用,而是全局的,所以也带来了一些适配问题。本导航栏组件支持可根据手机状态栏高度适配。 可自定义设置包...

2019-04-25 19:52:05 959

原创 微信小程序----返回上一页刷新或当前页刷新

一.需求:从主页面的列表点击进入详情页后,后续页面进行各种操作,最后要返回主页面。主页面需要重新刷新数据二。bug:在this.onLoad()中请求数据,但是从详情页返回主页面后,页面是没有再执行this.onLoad()的。如何刷新页面?三。解决方法:在onShow中执行数据请求,可以重新刷新页面。因为每次进入主页面,onShow都会执行一次。四。优化方案:一个页面有些数据是不...

2019-04-23 17:36:59 1495

原创 Rem布局的原理解析

一.什么是Remrem作用于非根元素时,相对于根元素字体大小;rem作用于根元素字体大小时,相对于其出初始字体大小——MDNem作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小——MDN从作用上可以看出,rem可以用来解决等比例缩放问题,也就是响应式问题。而em用来解决,当设置了等比缩放,字体不能很好展示,可以用em来解决字体问题。...

2019-04-16 18:02:48 5475

转载 手把手教你使用nodejs编写cli(命令行)

最近有打算自己写个cli玩玩。在看相关文章。觉得这个文章不错https://www.jianshu.com/p/095c968d406f

2019-04-16 13:14:10 855

原创 Vue基础总结系列文章第四篇---computed和watch的区别

一.两者共同点computed 和watch 都是监听某个值,然后计算新的值,或者触发某个操作,注意在computed 和watch 一定不要去修改原来的值,否则可能会导致无限循环问题。二.两者区别1.computedcomputed的缓存特性,体现在当页面重新渲染的时候,computed观察的属性只要不变,computed就不重新计算,会使用之前缓存的数据。而用函数计算则...

2019-04-15 16:14:59 222

原创 Vue基础总结系列文章第三篇---响应式数据更新

Vue是MVVM框架,数据的更新会触发模板的更新。核心是通过Object.defineProperty来实现的。但是具体的要点还有这些:1.数据来源:来自父组件的props,自身的状态data,还有公共状态vuex等。这些的改变都可能触发视图的更新。2.数据只有在初始化的时候,模板有用到的,才会被放入watcher里面,后期 修改才会触发视图更新,否则不会。3.data只有放在re...

2019-04-15 10:33:22 198

原创 Vue基础总结系列文章第二篇---双向数据绑定

首先必须明确:vue是单向数据流,双向数据绑定(v-model)只是一种语法糖。一.双向数据绑定的两种实现方法参考代码:https://github.com/ssxsite/vue2-webpack_update/blob/master/practice/component/model1.js二。v-model 修改成监听change模式参考代码:https://...

2019-04-14 20:22:45 257

原创 关于996

最近看了技术圈到处在传996。我觉得这个问题真是有趣:1.你有本事不想996,别人强迫得了你吗?(不能)2.有些人想要通过996来升职加薪,而通过996任然不能加薪,这只能自己想办法了。企业又不欠你的。3.我想996。只要我能遇到一个好的团队,发挥自我才能,激发自我潜能即可。可是,并没有。好难。4.每次想起生活在底层的人们,他们何止996.他们的生活从来没有周末。...

2019-04-14 18:01:50 262

原创 Vue基础总结系列文章第一篇---组件

一.组件是vue的核心概念之一一个Vue组件就是一个vue实例,通过传入不同的options来实现组件的自义定化。组件是vue运行的最小单位。二。组件的三大核心概念之一--属性(props)pros写法注意点:要这样写才规范:有趣的是:props可以传入一个函数子组件不能直接修改父组件传递的props,那么要修改可以通过父组件传递的函数,来间接修改...

2019-04-14 14:38:49 247

转载 参与github上开源项目的大致流程和注意事项

参考:https://www.cnblogs.com/metoy/p/4097001.html

2019-04-12 12:12:09 354

原创 Hybrid混合开发简要总结

一。什么是混合开发混合开发是指同时使用前端技术与原生技术来开发App的一种思想思路。通常由前端负责大部分界面开发和业务逻辑,原生负责封装原生功能供前端调用,二者以 WebView 作为媒介建立通信,从而既拥有 Web 开发的速度优势,又能拥有强大的原生能力。从前端开发者的角度,混合应用可以简单地理解为让前端页面跑在一个特殊的浏览器环境里,这个环境除了常规 Web API之外,还额外提供了很...

2019-04-09 13:51:07 860

原创 移动端(微信等)使用 vConsole调试console

作用在移动端无法打开控制台,使用了vConsole可以方便快捷在手机真机上进行调试console.log使用npm install vconsole然后在程序的入口文件,比如main.js里面引入:在js文件里面,还是继续使用console.log,这些console.log结果会在真机里面显示出来于是在真机上就可以看到:点击后:然后就可以在真机身上...

2019-03-25 22:17:41 1601

原创 解决使用Vue-cli打包,生成index.html文件无法使用浏览器打开的问题

然后重新 npm run build 然后再双击打开build生成是index.html,即可看到效果。

2019-03-25 21:55:39 1145

原创 vue组件keep-alive的应用及原理

介绍keep-alive是Vue.js的一个内置组件。它能够不活动的组件实例保存在内存中,而不是直接将其销毁,它是一个抽象组件,不会被渲染到真实DOM中,也不会出现在父组件链中。它提供了include与exclude两个属性,允许组件有条件地进行缓存。应用场景比如移动端页面的基本架构是tab点击来切换页面。每个页面都是一个组件,每次切换路由,都会重新渲染这个组件。都得重新请求数据...

2019-03-25 15:54:58 469

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除