<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_43139949的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_43139949</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_43139949]]></copyright><item><title><![CDATA[vue源码解析1 之数据响应之谜（数据侦测）]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/116867631</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/116867631</guid><author>weixin_43139949</author><pubDate>Mon, 31 May 2021 15:59:44 +0800</pubDate><description><![CDATA[我与vue源码
之前写过一篇死磕vue源码，写了一篇就真心写不下去，vue的代码现在健壮的不要不要的那么写会越写越乱，最后会搞到自己都看不懂的地步。我写文章也是东一榔头西一棒锤，今天就继续搞vue的源码，不过这次的策略不一样的。我呢，分析了一下vue的几件神器：

数据响应式（也就是数据侦测）；
AST抽象语法树（个人理解就是虚拟DOM， 把字符串的DOM模版转换为对象形式的DOM树）；
diff算法（最小量更新）；
当然了个人理解，vue就是以这几件大神器为底，建造起了一个前端框架。

数据侦测
每个框架]]></description><category></category></item><item><title><![CDATA[uni-app扫雷先锋 nvue css过渡动画 nvue css动画]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/114281693</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/114281693</guid><author>weixin_43139949</author><pubDate>Tue, 02 Mar 2021 13:37:51 +0800</pubDate><description><![CDATA[uni-app扫雷先锋 nvue css过渡动画 nvue css动画需求分析需求nvue使用css过渡动画的注意事项
需求分析
uniapp写项目如果只要app端，为了提升整体的性能和体验，可能会考虑整体使用nvue。在多端兼容的情况下也有可能部分使用nvue，nvue下的一些css的注意项已经有很多的文章了我就不过多的说了，这次只说过渡动画。
需求

点击效果
弹窗显示隐藏效果
复杂的动画还是要用  weex的 animation.transition

nvue使用css过渡动画的注意事项
呵呵呵，这]]></description><category></category></item><item><title><![CDATA[uni-app扫雷先锋之封装自己的poppup弹窗组件nvue]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/110776620</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/110776620</guid><author>weixin_43139949</author><pubDate>Sun, 06 Dec 2020 22:37:08 +0800</pubDate><description><![CDATA[uni-app扫雷先锋封装自己的poppup弹窗组件实际需求组件注意事项
封装自己的poppup弹窗组件
先来个最终的效果图
插件地址：https://ext.dcloud.net.cn/plugin?id=3603
github地址：https://github.com/lifei5859/popup.git

实际需求
其实公司提的需求没有根据手指位置弹出弹窗，但是在封装的时候呢自己就抖了个机灵，把这个功能也封装到里面了，自己感觉写的还是不是很好。上次icon的篇文章就提到了nvue的问题，这个组件也支]]></description><category></category></item><item><title><![CDATA[原生js判断鼠标移入方向，图片特效]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/110360404</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/110360404</guid><author>weixin_43139949</author><pubDate>Mon, 30 Nov 2020 16:22:43 +0800</pubDate><description><![CDATA[原生js判断鼠标移入方向，图片特效先来个最终效果需求，判断出鼠标从元素的哪个方向移入
搞vue搞uniapp搞得脑子都发木了，有些时候呢一些原生的，底层的东西都要忘脖子后去了，今天呢就来个原生js的小demo。
先来个最终效果

需求，判断出鼠标从元素的哪个方向移入
在判断这个移入方向之前呢，我们要搞清楚一些事情，请看下图

...]]></description><category></category></item><item><title><![CDATA[uni-app扫雷先锋之nvue的文字图标，封装自己的图标按钮]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/110121687</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/110121687</guid><author>weixin_43139949</author><pubDate>Wed, 25 Nov 2020 16:29:55 +0800</pubDate><description><![CDATA[uni-app扫雷先锋实际需求第一次遇坑第二次尝试-遇坑第三次尝试-图标出现了封装字体图标
上次还说nvue以后讨论今天就来了，nvue呀怎么说呢，官方的说法是性能好如何如何的，但是有些时候呢却逼着咱开发者不得不用，因为有些功能呢只有nvue有。。。比如地图组件的一大堆功能就只有nvue才能用，有些小伙伴说了引plus呀，可是引plus的话，小程序和app之间就会产生很多很多区别。行了废话就不多说了。。。
实际需求
字体图标这个东西相信搞开发的小伙伴们都不会陌生，用到它的地方特别的多，那么在nvue中它有多]]></description><category></category></item><item><title><![CDATA[uni-app扫雷先锋之swiper的高度]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/109704788</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/109704788</guid><author>weixin_43139949</author><pubDate>Sun, 15 Nov 2020 17:18:54 +0800</pubDate><description><![CDATA[uni-app扫雷先锋swiper组件实际需求解决方案
一晃之间也不知道多久没来写一写了，一开始时还对自己承诺每周要写一篇，现在都快一年写一篇了。哎…忙的不亦乐乎我也没辙（好吧我承认这都是借口），这次就不做承诺了，反正迟早来写。
可以说现在uni-app真的是风生水起，很多公司在做一些小程序和一些小的app都在用uni-app。这段时间我也深深的研究了一下uni-app这个大坑（当然了工作需要）。那真是大坑套小坑，三环套月的坑。今天来说一下，在开发过程中用uni-app的swiper组件写轮播图时它的高度的]]></description><category></category></item><item><title><![CDATA[深入理解es6 promise（模拟promise）]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/104832986</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/104832986</guid><author>weixin_43139949</author><pubDate>Fri, 13 Mar 2020 16:55:42 +0800</pubDate><description><![CDATA[es6的promise可以说是es6中最重要的语法之一，很多人都说是解决回掉地狱的很好的方法，其实它还是没有逃过回掉。
语法糖？
promise是语法糖吗？用代码告诉你：
setTimeout(function() {
	console.log('setTimeout go...')
})
var oP = new Promise(function (res, rej) {
    res('pr...]]></description><category></category></item><item><title><![CDATA[vue进阶之路（vue源码解析）死磕vue源码（二）]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/104799010</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/104799010</guid><author>weixin_43139949</author><pubDate>Wed, 11 Mar 2020 16:13:58 +0800</pubDate><description><![CDATA[咱们书接上回，先来看看画重点的地方。
initRender（src/core/instance/render.js）
在前面是怎么个流程，可以出门左转看死磕源码一。
注意看源码先不要被细节缠住
export function initRender (vm: Component) {
  // 这有个问题 vm是谁？ 前面initMixin时  vm = this
  // vm 就是实例对象喽
 ...]]></description><category></category></item><item><title><![CDATA[vue进阶之路（vue源码解析）死磕vue源码（一）]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/104774613</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/104774613</guid><author>weixin_43139949</author><pubDate>Tue, 10 Mar 2020 18:46:14 +0800</pubDate><description><![CDATA[开头，中国加油，武汉加油。
把混乱的时期拉回正轨。
以现在的形式还有加一句全人类加油。
vue源码解析大局观（梳理执行流程）
上次写了一个简单版的vue其实就是通过读源码，加上看一些前辈的博客撸出来的。但是呢其实vue的源码我并没有看的太明白…，于是产生了死磕之心。
首先随便找一个自己写的vue项目
在项目目录下 node_modules/vue 撸一波
结构

我们重点先放在core（核心）上梳...]]></description><category></category></item><item><title><![CDATA[写一个自己的简易版vue]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/104133287</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/104133287</guid><author>weixin_43139949</author><pubDate>Sat, 01 Feb 2020 17:14:31 +0800</pubDate><description><![CDATA[写一个自己的简易版vue过年的这几天准备工作开始初始化观察者
过年的这几天
刚到家疫情就开始爆发，恰巧家里没有网，手机网络在老家的速度就像拖拉机，每天躲在家里，还好刚到老家时搞了些口罩，不至于返程时没有口罩可带。
手机的网络速度到底什么样呢，用vue-cli建个项目就在那一直install，还有可能中途失败，哎。。。，没法练习vue了就把自己写好的简易版vue拿出来又撸了撸，还有点意思。
准备工作...]]></description><category></category></item><item><title><![CDATA[vue手写轮播图组件]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/103745518</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/103745518</guid><author>weixin_43139949</author><pubDate>Sat, 28 Dec 2019 16:44:00 +0800</pubDate><description><![CDATA[轮播图组件是大多数项目都有的需求，当然相关的库、插件多的很，但是呢我还是喜欢自己折腾一下。
需求
在做公司项目时其实需求很简单就是能滑动轮播，自动轮播，循环轮播完事了。
需求版本
首先html部分
&lt;template&gt;
    &lt;div class="my-swiper-box" ref="swiperBox"&gt;
        &lt;!-- 滑块主体 --&gt;
  ...]]></description><category></category></item><item><title><![CDATA[js笔记框架篇（vue）写一个vue的oast弹窗插件]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/103408057</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/103408057</guid><author>weixin_43139949</author><pubDate>Thu, 05 Dec 2019 17:36:41 +0800</pubDate><description><![CDATA[继续来说vue，我刚到新公司的时候吧，正好有个新项目，当时呢这个项目已经写了个开头。代码拿过来捋了捋，我就问我的小前辈，为什么没用ui框架，他说，没意思那玩意也不会符合我们的全部需求自己写一样，我就一阵无语，作为一个新人，还是要听前辈的话，于是一系列插件，组件写到怀疑人生，今天就讲一讲弹窗插件。
vue插件
vue插件呢就是Vue.use(xxx),这个xxx要是个install函数大概就是这么个...]]></description><category></category></item><item><title><![CDATA[js笔记框架篇 vue（一）router原理]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/103171386</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/103171386</guid><author>weixin_43139949</author><pubDate>Wed, 20 Nov 2019 22:22:20 +0800</pubDate><description><![CDATA[前面的内容呢，主要是在工作中主要是使用vue的，而这玩意用的久了，一些基础性的东西忘得就差不多了，所以一边复习复习，一边写成博客，加深印象，现在开始也写写的好伙伴vue的文章。
vue-router
前端的小伙伴们，对vue全家桶肯定是不陌生的，就算没用过也应该听过，而vue-router也是构建spa不可缺少的一份子，先简单说说用法。
首先使用命令行工具
npm：
		npm install v...]]></description><category></category></item><item><title><![CDATA[js之解析语法糖Array迭代方法，reduce]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/103057852</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/103057852</guid><author>weixin_43139949</author><pubDate>Wed, 13 Nov 2019 23:50:13 +0800</pubDate><description><![CDATA[上次呢，自己封装了一些js里Array的语法糖，如filter， map， forEach呀，最后留了个reduce，今天就来说说这个reduce。
reduce
先看看它的用法：
   // reduce要传两个参数， 一个是回调函数，一个是第一次迭代total的默认值
   // 第二个参数可以不传但是，不传第二个值在迭代时，会少迭代一次，这时reduce将数组的第一位作为total第一次的值...]]></description><category></category></item><item><title><![CDATA[js笔记之解析语法糖，Array方法，forEach，map，filter等方法解析]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/102988537</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/102988537</guid><author>weixin_43139949</author><pubDate>Sat, 09 Nov 2019 17:44:42 +0800</pubDate><description><![CDATA[语法糖
在JavaScript推出到es5之后，官方语法糖越来越多，官方语法糖就是用语言底层官方自己封装好的方法供开发者使用，今天我就来解析一下Array中比较常用的一些语法糖，如forEach，map等。
forEach解析
想解析其底层原理，先要明白它怎么使用：
var arr = [1, 2, 3];
// forEach可以接收两个参数一个回调函数， 一个是回调中的this
arr.for...]]></description><category></category></item><item><title><![CDATA[js笔记 demo篇 （四）拖拽上传展示，进度条]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/102840934</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/102840934</guid><author>weixin_43139949</author><pubDate>Thu, 31 Oct 2019 18:00:31 +0800</pubDate><description><![CDATA[最近忙的懵逼，又很久没更新了，忙里偷闲更一篇。

h5： 拖拽接口
在h5中提供了很多接口，其中就有拖拽，这里只介绍拖拽上传用得到的几个：
dragenter    --&gt; 进入元素范围时触发
dragleave    --&gt; 离开元素范围时触发
dragover      --&gt; 悬浮在元素上时触发（持续触发）
drop             --&gt; 在元素上松开拖拽（...]]></description><category></category></item><item><title><![CDATA[js笔记 基础篇（七）Object.defineProperty与数据劫持]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/102414062</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/102414062</guid><author>weixin_43139949</author><pubDate>Wed, 09 Oct 2019 04:39:27 +0800</pubDate><description><![CDATA[es5 （Object.definePropety)
我们先来了解一下Object.defineProperty，这个方法是es5中提出用来限制用户对对象属性与方法的操作。其实在js内部的对象中有很多地方都是限制用户操作的。例如：
var obj = {}
console.log(obj.__proto__);
/* 	constructor: ƒ Object()
	hasOwnProperty...]]></description><category></category></item><item><title><![CDATA[js笔记 基础篇 （六） js的面向对象]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/101979488</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/101979488</guid><author>weixin_43139949</author><pubDate>Thu, 03 Oct 2019 11:11:08 +0800</pubDate><description><![CDATA[js笔记 基础篇 （五） js的面向对象waht面向对象？
waht面向对象？
严格来说，js并不是面向对象的编程语言，js是基于对象的语言，那为什么js可以面向对象呢？
js可以模拟面向对象，它可以继承，可以封装，只是没有传统面向对象语言（如java）的多态特性。
简单说一下什么是面向对象，假如我有一个需求，要输出一句话：‘我可以面向对象’，那面向过程的方式要这样做：
	console.log(...]]></description><category></category></item><item><title><![CDATA[js笔记 demo篇 （三）原生js小游戏贪吃蛇]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/98447505</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/98447505</guid><author>weixin_43139949</author><pubDate>Sun, 04 Aug 2019 13:52:50 +0800</pubDate><description><![CDATA[js笔记 demo篇 （二）原生js小游戏贪吃蛇源码与展示
自己学一些技术的时候，学了一段时间就想做点东西出来，找一找成就感今天这个小demo，就是我学习js一段时间之后找成就感的小demo，先给大家分解一下。

结构其实很简单，一个样式文件夹就一个css文件，首先因为东西本身就少，二是写死的样式非常少。
img不用说一些图片。然后就是src也是小demo中方最重要的文件夹。
tool中主要装了一...]]></description><category></category></item><item><title><![CDATA[js笔记 demo篇 （二）原生js防抖搜索框]]></title><link>https://blog.youkuaiyun.com/weixin_43139949/article/details/96583384</link><guid>https://blog.youkuaiyun.com/weixin_43139949/article/details/96583384</guid><author>weixin_43139949</author><pubDate>Sat, 20 Jul 2019 15:47:25 +0800</pubDate><description><![CDATA[js笔记 demo篇 （二）原生js防抖搜索框防抖什么是防抖防抖搜索框demo展示地址：http://www.fgdemoshow.cn/smallDemo/js/searchBoxgitHub地址：https://github.com/lifei5859/search-box
防抖
什么是防抖
防抖，难道代码还会抖吗？  当然不是字面上的意思，代码又没有脑血栓。
问题：
比如有一个搜索框，我们要...]]></description><category></category></item></channel></rss>