- 博客(132)
- 问答 (3)
- 收藏
- 关注
原创 Vue数据驱动之(三)render方法
Vue数据驱动之render方法这个课程必须是在 Vue数据驱动之mount方法 方法之后render是什么mount方法里面我们知道 核心的地方let updateComponent = () => { vm._update(vm._render(), hydrating)}在initMixin() 里面有 initRender(vm) 方法 在这里对render进行了定义,render是绑定在Vue原型上的一个方法render 源码分析Vue.prototype._ren
2020-10-17 17:00:38
962
原创 Vue数据驱动之(二)mount方法
Vue 是通过 $mount 实现挂载的 那么这个 $mount 都做了什么呢?mount的定义是在 platform 里面web 文件下的 ,Vue 本身的东西会在core里面 但是一旦和环境相关的 会在platform里面生成各种版本的 Vue文件 比如 weex环境下的 或者web 环境下的 , 在weex下就没有这个mount的方法 所以 会在 platform下面 查看这个mount 的方法这里的mount是将 原来公共的mount 赋值给const mount 然后重新定义了一个moun
2020-10-17 16:21:00
2865
1
原创 Vue数据驱动之(一)vue是什么
学习目标1. vue是个啥2. this.message为啥就可以访问到message的值vue源码文件vue是什么在 core 文件的index中可以看出 Vue是在 instance/index 引入的看到文件里面发现 vue 是一个 function 里面就只有执行了一个init方法这个init 做了什么呢? 是在哪里定义的呢?我们可以看到在定义vue之后 紧接着就 init了好几个方法这个init的操作其实就是在 其中 initMixin 里面做的 (从名字就应该可以看出来
2020-10-17 12:24:44
426
原创 vue3.0学习笔记
文章目录Vue3.0重要变化创建项目的三种方式为什么V3更快的性能组合APIV2存在的问题- 业务逻辑分散V3 组合API横空出世组合APIsetup以及其中使用的方法的介绍setup执行时机setup注意点setup中使用ref,reactive,isRef, isReactive,shallowRef,shallowReactive, triggerRef, toRow, markRaw,toRef, toRefs, customRef, readonly ,shallowReadobly , isRe
2020-10-14 23:23:17
817
原创 算法打卡第一天:复杂度分析
大O大O时间复杂度表示代码随着数据规模增长的变化趋势注意点:只关注执行最多的一段代码加法法则:总复杂度等于量级最大的那段代码的时间复杂度乘法法则:嵌套的代码的复杂度等于嵌套内外代码复杂度的乘积常见的时间复杂度常量阶 O(1)指数阶 O(2的N次方)对数阶 O(logN) 阶乘阶 O(N!)线性阶 O(N)线性对数阶 O(N * logN)平方阶 O(N的2次方)立方...
2019-11-25 23:46:52
277
原创 查找算法-二分查找
概念二分查找的思路是很简单的,前提是这组数据是有顺序的。 思路是从中间找一个数,判断大小,如果数比中间数大,说明在中间数到结尾的数中,如果小于,则说明在开始和中间数之间,经过多次相同操作,就可以得到我们想查找的数时间复杂度时间复杂度就是 O(logn)代码实现非递归的实现 const testArr = [] let i = 0 while (i < 10...
2019-11-22 13:50:16
241
原创 排序算法(九):归并排序
概念递归将数组分为两个序列,有序合并这两个序列。归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。归并排序使用的就是分治思想。分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了图解[外链图片转存失败,源站可能有防盗链机制,...
2019-11-07 20:15:04
346
原创 排序算法(八):快速排序
概念快速排序又叫快排,思路是 在arr中找到一个点,从这点开始晓得都移动到前面,大的都移动到后面。然后把这两部分分别进行同样的操作。直到left 不小于right 的时候 说明所有的操作都进行完了代码const swap = (arr, i, j) => { const temp = arr[i] arr[i] = arr[j] arr[j] = temp}...
2019-11-07 19:50:46
246
原创 排序算法(七):希尔排序
概念这是一个叫希尔的人想到的,所以叫做希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。逻辑首先,选择增量 gap = 10/2 = 5 把所有的数分成5组,对每组进行排序缩小增量继续以 gap = gap/2 = 2 把所有的数分成2组,对每组进行排序通过这种方式,缩小这个数组的有序度,然后在对整个数组进行插入排序用这种方式减小复杂度...
2019-11-06 20:13:39
520
原创 排序算法(六):桶排序
概念桶排序:取 n 个桶,根据数组的最大值和最小值确认每个桶存放的数的区间,将数组元素插入到相应的桶里,最后再合并各个桶复杂度最好:O(n),每个数都在分布在一个桶里,这样就不用将数插入排序到桶里了(类似于计数排序以空间换时间)。最坏:O(n²),所有的数都分布在一个桶里。平均:O(n + k),k表示桶的个数。代码 // 桶算法 function bucket_so...
2019-11-04 15:24:31
329
原创 排序算法(五):基数排序
概念基数排序是非比较排序算法,算法的时间复杂度是O(n). 相比于快速排序的O(nlgn),从表面上看具有不小的优势.但事实上可能有些出入,因为基数排序的n可能具有比较大的系数K.因此在具体的应用中,应首先对这个排序函数的效率进行评估. 基数排序的主要思路是,将所有待比较数值(注意,必须是正整数)统一为同样的数位长度,数位较短的数前面补零. 然后, 从最低位开始, 依次进行一次稳定排序(我们常用...
2019-11-04 15:23:47
235
原创 排序算法(四):计数排序
概念以数组元素值为键,出现次数为值存进一个临时数组,最后再遍历这个临时数组还原回原数组。因为 JavaScript的数组下标是以字符串形式存储的,所以计数排序可以用来排列负数,但不可以排列小数。复杂度最好:O(n + k),k是最大值和最小值的差。最坏:O(n + k)平均:O(n + k)分类常规计数排序代码 function counting_sort(nums) {...
2019-11-04 15:22:54
636
1
原创 排序算法(三):选择排序
概念选择一个数和后面的所有数比较,确定现在位置的值时间复杂度最好:O(n²)最坏:O(n²)平均:O(n²)代码 function select_sort(arr) { let leg = arr.length for (let i = 0; i < leg; i++) { for (let j = i + 1; j <...
2019-11-04 15:19:44
174
原创 排序算法(二):插入排序
概念把数组分成两部分,一部分是有顺序的,第二部分是没有顺序的,从没有顺序的数组中拿出来一个,把他排在有序数组中的相应位置时间复杂度最好:O(n),原数组已经是升序的。最坏:O(n²)平均:O(n²)代码 // 插入算法 function insert_sort(arr) { let leg = arr.length for (let i = 1...
2019-11-04 15:18:38
174
原创 排序算法(一):冒泡排序
概念冒泡排序:就行冒泡泡一样,每次把最多大的或者最小的冒出来(找到),放在最后或者最前面,然后重复N次,就可以对数组进行排序,每次总是相邻两个作比较时间复杂度通过相邻元素的比较和交换,使得每一趟循环都能找到未有序数组的最大值或最小值。最好:O(n),只需要冒泡一次数组就有序了。最坏:O(n²)平均:O(n²)分类1. 单向冒泡2. 双向冒泡单向冒泡 functio...
2019-11-04 15:16:47
304
原创 toUpperCase()和toLowerCase()
作用toUpperCase() 方法用于把字符串转换为大写。toLowerCase() 方法用于把字符串转换为小写。例子var txt="Hello World!"document.write("<p>Lowercase: " + txt.toLowerCase() + "</p>")document.write("<p>Uppercase:
2019-01-21 17:18:01
1228
原创 isFinite()的使用
作用isFinite() 函数用于检查其参数是否是无穷大。如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。例子document.write(isFinite(123)+ "<br>"); truedocument.write(isFinite(-1.23)+ "<br>"); truedocument.write(i...
2019-01-21 15:45:14
3779
原创 parseFloat的使用
作用parseFloat()函数 可解析一个字符串,并返回一个浮点数。例子<script>document.write(parseFloat("10") + "<br>"); 10document.write(parseFloat("10.33") + "<br>"); 10.33document.write(parseFlo
2019-01-21 15:41:10
5212
1
原创 Object.freeze的使用
定义Object.freeze() 方法可以冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。该方法返回被冻结的对象。案例冻结对象var obj = { prop: function() {}, foo: 'bar'};// 新的属性会被添加, 已存在的属性可能// 会被修改...
2019-01-18 18:46:43
4808
原创 vue 编译报错 -- JavaScript heap out of memory
背景在使用vue时 由于项目过大,编译过程出现错误,截图大致如下 原因原因是 JavaScript堆内存不足,这里说的 JavaScript 其实就是 Node,我们都知道 Node 是基于V8引擎,在一般的后端开发语言中,在基本的内存使用上没有什么限制,但是我去查阅了相关的资料才发现,在 Node 中通过 JavaScript 使用内存时只能使用部分内存(64位系统下约为1.4 G...
2018-09-10 10:29:19
4699
原创 async await 的原理
前言在公司的项目中,我们经常用到async await 这样的函数,它的作用也很奇特,可以让异步的函数等待异步执行的结果出来再继续往下进行。我一直很好奇这是怎么做到的,它内部的机理是怎么样的,就一个关键词在函数前面加async,在异步操作前面加await就可以做到。他是怎么做到的呢?再抛出几个问题1 出处在哪里现在我们用的vue项目就会把我们的语法打包编辑成浏览器可以识别的...
2018-07-08 21:58:30
17941
1
原创 js事件循环
前言什么是事件循环,原来被人问到的时候就懵逼了,好像没有听过这个概念吗? 不应该是事件捕获,事件冒泡这种吗?事件循环是什么鬼?什么是事件循环单线程一百度,原来真有事件循环这一概念,并且阮一峰大神的博客专门介绍了这一概念 。在此做一个简单的自己的总结首先js是单线程的。为什么设计成单线程也和自己的应用场景有很大关系,JS 被设计出来在浏览器端使用,如果多线程,一个线程说删掉...
2018-05-19 17:20:51
648
原创 js 中 map , foreach , reduce 的区别
每日一问:js中 map foreach 和 reduce的 区别答案从网上找的大神的回答总结: map 会返回新的数组 foreach 便利数组中每一项 reduce 适合做累计运算
2018-04-10 01:07:40
2231
2
原创 换工作的心路历程...吧
前言在上一家公司待了半年多的时间,但是不幸的是七月份入职,八月工资就不能正常发放,当时面试去的时候没感觉经济问题已经这么严重,老大给我们开会的时候说(我们从来不缺钱,我们本身是投资人,原来公司没有拿到投资的时候都我们自己在出。而且我们马上要进行下一轮融资,让我们走上更高的台阶)然后就一直欠工资,原来每个月十五号发工资,最迟能到25号。到年末12月份就开始说裁员,一百人只要三十人。 到了一月底就...
2018-04-03 23:19:01
858
原创 vscode配置
vue 格式化代码安装插件vetur然后在 用户设置里面加上下面两行 "prettier.tabWidth": 4,"vetur.format.defaultFormatter.html": "prettier",就可以使用option+shift+f 实格式化代码.vue 文件书写stylus代码时 使用格式化会自动添加上大括号同上设置地点"stylusSuprema...
2018-03-26 10:30:07
620
原创 npm 报错 Module build failed: Error: No PostCSS Config found in:
情景我使用vue-cli 创建项目,然后想换个地方,就把除了node_modules 以外的文件全部拷贝到另一个文件,然后传到Git上,想的重新 npm run dev 一下就可以。但是在原来位置 就是可以正常展示的,但是在新文件里面就会报错 Module build failed: Error: No PostCSS Config found in: /Users/*** ,很是尴尬。...
2018-03-23 10:05:30
18052
6
转载 浅谈IE事件处理与其他浏览器的差异
1、表示发生事件:(1)非IE浏览器下,事件对应的函数有一个隐藏的变量e,表示发生事件。(2)IE下,不需要e变量,window.event表示发生事件。解决方案:用e||window.event来兼容。2、触发事件对象(触发事件的元素被认为是目标target):(1)IE下,window.event对象有srcElement属性,但没有target属性。(2)Fire...
2018-03-20 10:32:02
810
转载 Vue是怎么实现数据双向绑定的
vue数据双向绑定原理vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,那么vue是如果进行数据劫持的,我们可以先来看一下通过控制台输出一个定义在vue初始化数据上的对象是个什么东西var vm = new Vue({ data: { obj: { a: 1 } }, created: fu...
2018-03-19 12:24:04
2607
2
转载 什么是XSS和CSRF攻击,怎么防护
什么是SXXXSS:跨站脚本(Cross-site scripting,通常简称为XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。CSRF:跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 ...
2018-03-19 11:06:47
3871
2
原创 vue-router相关基础知识
前言今天面试被问到 vue的动态路由,我竟然没有回答上来,感觉不是什么难得问题。好久没有看vue-router的文档,很多用的东西和概念没有对上。回来一看什么是动态路由就傻眼了。看来有必要把vue -router相关知识总结一下,好丢人的感觉。单页面应用的工作原理我理解的单页面工作原理是通过浏览器URL的#后面的hash变化就会引起页面变化的特性来把页面分成不同的小模块,然后通过修改h...
2018-03-16 01:09:45
724
原创 js中const,var,let区别
const 不可以修改 并且必须初始化const NAME;Uncaught SyntaxError: Missing initializer in const declarationconst NAME = 'marain';NAME = 'marin2'Uncaught SyntaxError: Missing initializer in const declaration...
2018-03-13 12:04:31
521
原创 js 数组函数 和 注意事项
js 的数组对象有哪些push — 向数组的末尾添加一个或更多元素,并返回新的长度。pop — 删除并返回数组的最后一个元素shift — 删除并返回数组的第一个元素unshift —可向数组的开头添加一个或更多元素,并返回新的长度。slice — 从某个已有的数组返回选定的元素sort — 对数组的元素进行...
2018-03-13 11:57:58
660
原创 vue组件通讯
vue 组件的通讯父组件 => 子组件在父组件中,通过 <child1 :child1="count" ></child1> :child的方式把想传递的count传递到子组件。子组件通过定义props来接受传递的参数。然后就可以使用 props:{ child1:{ type:Number, //规定了参数的类...
2018-03-12 11:09:25
372
原创 object深复制与浅复制
问题由来Javascript中对一个对象赋值,会存在以下问题 var obj1 = { a: '1', b: '2', c:{ d:'3', e:'4' } } var obj2 = obj1; console.log(obj2.c.d ...
2018-03-11 11:15:03
593
原创 reflow(回流)和repaint(重绘)及其优化
什么是Repain 和 Reflow首先说明一下 浏览器解析过程 1、解析HTML以构建DOM树:渲染引擎开始解析HTML文档,转换树中的html标签或js生成的标签到DOM节点,它被称为 – 内容树。 2、构建渲染树:解析CSS(包括外部CSS文件和样式元素以及js生成的样式),根据CSS选择器计算出节点的样式,创建另一个树 —- 渲染树。 3、布局渲染树: 从根节点递归调用,计算...
2018-03-09 01:44:50
600
原创 vue-cli没有dev-server.js文件该怎么办
原有原来的vue-cli 在 vue init webpack 文件名之后,在build目录下会生成dev-server.js文件,可以在页面请求本地数据的时候使用。但是最新版本的vue中,并没有找到这两个文件。应该怎么处理呢?解决虽然 dev-server.js 文件没有了,替换到了webpack.dev.conf.js 文件里面。我们可以在webpack.dev.conf.js里面...
2018-03-08 11:45:52
3692
原创 前端知识点整理
一. HTML 部分 1. 声明概念(doctype html) 2. HTML5语义化 3. HTML5认知 4. SVG 5. Canvas 6. sessionStorage && localStorage二. CSS部分 1. 布局 2. 动画 3. 定位和浮动 4. Flex布局
2018-01-29 22:59:15
403
原创 iOS11 input的光标错位
问题原来测试好的登录模块,再iOS11 的情况下 出现了 input 的 光标位置跑位的现象。原因原因出在 布局的时候使用了 position:fixed; 的问题 。再iOS端本身对position:fixed的支持就不是很好,会出现各种小问题,现在又出现了,input光标跑位的问题,所以布局还是少用fixed的情况解决办法我的登录模块是单独的模块,用 position:fi
2018-01-15 10:21:34
6254
原创 CSS布局--子元素margin-top 改变父元素定位的问题
问题描述CSS布局的时候出现,子元素使用margin-top,父元素的定位就会偏离的现象代码 *{ margin:0; padding: 0; } .box{ width: 100px; height: 100px; background: red; } .item1{
2018-01-15 09:53:14
947
原创 H5调用本地摄像头拍摄照片
前言最近项目中需要H5调用本地摄像头拍照的需求。代码<canvas id="canvasCemara" width="500" height="500"></canvas><video autoplay="" id="video2" style="width:500px;height:500px;"></video><button id="btn">拍摄</button>html 部分就这些 一
2017-12-20 21:51:32
3516
空空如也
MAC 开发node的时候 用到jade ,我用submit 修改代码浏览器显示不变,
2017-06-23
iscroll 滑动过程中点击屏幕会触发点击效果
2017-06-12
Vue redirect 设置默认路径里面有需要参数的话应该怎么办
2017-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人