首页
学习
活动
专区
工具
TVP
发布

web

专栏作者
36
文章
38593
阅读量
29
订阅数
vue 响应式原理
简单点讲 vue 的响应式是通过 Object.defineProperty 和 观察者模式来实现的。 vue 初始化的时候 watcher 构造函数通过 Object.defineProperty 方法对 data 属性进行递归遍历,设置 get、set,初始化编译的时候会触发 getter 函数,进行依赖收集,将观察者 watcher 添加到目标对象 dep 中。改变数据的时候会触发 set, 执行 notify 方法,调用 dep 中 watcher 对象的 update 方法,update 方法将 watcher 添加到 watcher 队列中, 通过调用 nextTick 异步执行,触发更新。
大当家
2020-04-01
5510
$nextTick 源码解析
nextTick 是 vue中重要的性能优化方式,解析实现原理可以有助于我们更好的理解框架。
大当家
2020-04-01
8020
分享 koa + mysql 的开发流程,构建 node server端,一次搭建个人博客
由于一直在用 vue 写业务,为了熟悉下 react 开发模式,所以选择了 react。数据库一开始用的是 mongodb,后来换成 mysql 了,一套下来感觉 mysql 也挺好上手的。react-router、koa、mysql 都是从0开始接触开发的,期间遇到过很多问题,印象最深的是 react-router 参考官方文档配置的,楞是跑不起来,花费了好几个小时,最后才发现看的文档是v1.0, 而项目中是v4.3, 好在可参考的资料比较多,问题都迎刃而解了。
大当家
2019-04-09
2.6K0
Ajax XMLHttpRequest对象的三个属性以及open和send方法
(1)onreadystatechange 属性 onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:
大当家
2019-02-22
5040
设置第一个字母字体变大并且所有字母大小写 及下划线
 以上是目标样式,第一个字母大概24px,后面的大概19px,并且都是大写。 如果单纯的给A和T两个字母添加标签再设置字体大小的话,那么设置的underlin;会有所差别,效果如下: 很明显下划线不在一条水平线上。为了解决这个问题可以有两种方法; 第一种:为<p>标签设置border-bottom,可以说设置颜色等属性。 第二种:HTML标签 <p class="about">about</p> <p class="about">technologe</p> css样式: .about{font-siz
大当家
2018-06-28
1.3K0
vue项目在移动端(手机)调试
查了很长一段时间的资料才搞好。 感悟就是:原来那么简单呐。 首要条件:同一局域网下(大致理解为链接相同的wifi)     1:命令行运行 ipconfig     2:     得到ipv4值, 用
大当家
2018-06-28
1.5K0
关于HTML5中的sessionStorage和localStorage
需求:     做项目的时大多数情况下我们需要对请求的数据进行多次复用,为了降低请求次数我们需要对请求的数据进行本地存储;    以前用的cooking来存储为本地数据,HTML5后提出sessioStorage、localStorage,那么我们来看看三者的区别(大致了解下,不是本博文重点)。 cooking Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。 SessionStorage: 将数
大当家
2018-06-28
1.2K0
javascript -- 变量
工作中发觉原生 js 还有待加强,只好再啃一遍高程3了。 ECMAScript的变量是松散类型的,所谓松散类型就是(变量)可以用来保存任意类型的数据。换句话说每个变量仅仅是在特定的时间内保存值的占位符而已。 所谓特定的时间就是变量的生命周期。 关于生命周期就要说到‘作用域’,进而得说‘作用域链’。此处只做简单介绍,后面会详细介绍作用域和作用域链。 js中没有块状作用域( if语句 ),只有全局作用域和函数作用域。 (var定义的变量将称为该作用域中的局部变量 即全局下就是全局变量,函数内就是局部变量) 全局
大当家
2018-06-28
6390
javascript -- 数据类型
js中有5种基本的数据类型(简单数据类型):Undefined、Null、Boolean、Number 和 String。还有一种复杂数据类型:Object。object本质上是由一组无序的名值对构成。 1 typeof操作符 一般我们为了检测5种不同的数据类型,常用typeof操作符。(复杂数据类型用instance of检测) var msg='string'; console.log(typeof message) // string 注意:null 和 object 的返回结果都是object  因
大当家
2018-06-28
3830
vue组件的生命周期
先来张组件生命周期的示意图:  文档里是这样描述的:你不需要立马弄明白所有的东西,不过以后它会有帮助。传送门. Vue2.0的生命周期钩子一共有10个,同样结合官方文档作出了下表 生命周期钩子 生命周
大当家
2018-06-28
6300
JS中isPrototypeOf 和hasOwnProperty 的区别
1、isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false。  格式如下:  object1.isPrototypeOf(object2);  object1是一个对象的实例;  object2是另一个将要检查其原型链的对象。 (object1 是否在 object2的原型链上). 原型链可以用来在同一个对象类型的不同实例之间共享功能。  如果 object2 的原型链中包含object1,那
大当家
2018-06-28
8530
js中push(),pop(),unshift(),shift()的用法小结
1、push()、pop()和unshift()、shift()   这两组同为对数组的操作,并且会改变数组的本身的长度及内容。   不同的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。  var arr = [1, 2]; 2、push()和unshift()   向数组的 尾部/头部 添加若干元素,并返回 数组的 新长度;   arr.push(3,4);         //返回 arr 的新长度 4   arr ;        
大当家
2018-06-28
2.9K0
vue项目 构建 打包 发布 三部曲
一、vue项目的创建 1、首先第一肯定是要有Node.js及npm这个不多说了 2、安装脚手架 此时可以直接浏览-但是现在肯定有很多小白想将他发布到gitHub上并可以浏览,使用vue全家桶制作自己的
大当家
2018-06-28
1.4K0
Github发现优秀的开源项目
   先上个大logo,哈哈。   github上有非常多的资源,我们可以在github上搜索到非常多的开源项目。那么如何使用github查找资源?    罗列出一下几种方式。 1.Explore 登
大当家
2018-06-28
9600
记一次webpack打包优化
未进行打包优化的痛点:   随着项目的不断扩大,引入的第三方库会越来越多,我们每次build的时候会对所有的文件进行打包,耗时必定很长,不利于日常开发。 解决思路:   第三方库我们只是引入到项目里来,一般不会经常性的去修改源码,一般都是在src目录下编写业务代码,因此可以把第三方依赖和src分开打包。   每次build的时候我们只需要把之前build好的第三方依赖文件引入到项目中即可,避免了我们每次build的时候都会build第三方依赖。   当第三方依赖发生改变的时候我们只需要把第三方依赖再buil
大当家
2018-06-28
1.3K1
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018-06-28
2.2K0
Ajax XMLHttpRequest对象的三个属性以及open和send方法
Ajax XMLHttpRequest对象的三个属性以及open和send方法 (1)onreadystatechange 属性 onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置: xmlHttp.onreadystatechange=function() { // 我们需要在这里写一些代码 } (2)readyState 属性 readyState 属性存有服务器响应的状态信息。每当 ready
大当家
2018-06-28
5930
webstorm常用功能快捷方式
1 自动注释和撤销注释:ctrl+/ 在一句代码前面用 ctrl+/ 可以自动注释和撤销注释,js,html都可以,很好的省去了敲注释符的时间  (mac下为command+/,下同) 2 自动补全html标签 我们知道在使用Linux命令的时候按tab键有自动补全的功能,在很多编译器里也是,在webstorm中当你想敲一些html元素时,比如: (1)想敲一对h1标签,只需要敲h1,按tab键,变回自动补全为: <h1></h1> 1 1 (2)想输入带id的,如 <div id="abc"></div>
大当家
2018-06-28
9330
vue-router基本概念及使用
index.html: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <meta charset="utf-8"> 6 <script src="http://unpkg.com/vue/dist/vue.js"></script> 7 <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> 8 </head
大当家
2018-06-28
3730
各种水平垂直居中
单行文本:       水平居中: text-align:center      垂直居中: line-height=容器高度 多行文本: 文本设置<span>标签 span{ display: table-cell; vertical-align: middle; text-align: center; } 父元素设置 display
大当家
2018-06-28
1K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档