<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[z020729的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/z020729</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; z020729]]></copyright><item><title><![CDATA[CommonJS和ESModule]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/136131623</link><guid>https://blog.youkuaiyun.com/z020729/article/details/136131623</guid><author>z020729</author><pubDate>Wed, 20 Mar 2024 21:08:06 +0800</pubDate><description><![CDATA[在html文件中如果只是将script标签通过src引入js文件，就相当于将所有的js文件都放到全局作用域下，这样只是形式上的分为不同的js文件，并没有实际上的模块化，仍然会产生变量命名冲突，代码耦合度过高等情况。模块化就是将不同的代码逻辑，功能点，区分出来形成不同的作用域，区分为互相独立的模块。在多人协作开发的过程中，需要可复用代码在模块之间进行传递，如果每个人在模块中导入和导出的方式都按自己的想法来实现，多人开发的效率就会大大降低，这个时候就需要规范来进行约束，大家都按照这个规范来进行开发，提高效率。]]></description><category></category></item><item><title><![CDATA[Promise]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/135588450</link><guid>https://blog.youkuaiyun.com/z020729/article/details/135588450</guid><author>z020729</author><pubDate>Mon, 04 Mar 2024 13:59:22 +0800</pubDate><description><![CDATA[Promise是ES6新增类，用来解决异步的回调地狱问题，为异步提供更强大的性能支持，一个promise实例对象会存在三种状态，分别是pedding，fulfilled，rejected。创建实例的时候需要给Promise类传入一个回调函数，该回调函数可以传入两个参数，两个参数是两个函数，分别是resolve，reject函数。当触发resolve函数之后，promise的状态值变成fulfilled，之后会执行promise实例的then函数；]]></description><category></category></item><item><title><![CDATA[JS手写apply，call，bind函数]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/135426407</link><guid>https://blog.youkuaiyun.com/z020729/article/details/135426407</guid><author>z020729</author><pubDate>Sat, 06 Jan 2024 16:13:49 +0800</pubDate><description><![CDATA[本篇文章咱们来手写简易版的apply，call，bind函数。]]></description><category></category></item><item><title><![CDATA[JS中的Set和Map数据结构]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/135182960</link><guid>https://blog.youkuaiyun.com/z020729/article/details/135182960</guid><author>z020729</author><pubDate>Sun, 24 Dec 2023 18:11:35 +0800</pubDate><description><![CDATA[Set结构中储存的是值，类似于数组，但是储存的值具有唯一性。Map结构中储存的是键值对，类似于对象，但是可以将对象作为键使用，创建Map结构方式如下图：那你肯定也有疑问，既然有对象结构，为什么要添加Map结构，咱们来看下图这个场景：可以看到使用多个不同对象作为键，只会保留一个字符串作为键，这就是Map结构可以解决的问题，也是它们的不同之处，即对象的键只能是字符串，而Map结构的键可以是对象。]]></description><category></category></item><item><title><![CDATA[JS中浅拷贝和深拷贝]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/135050753</link><guid>https://blog.youkuaiyun.com/z020729/article/details/135050753</guid><author>z020729</author><pubDate>Sun, 17 Dec 2023 22:06:12 +0800</pubDate><description><![CDATA[本篇文章咱们一起来学习下JS中的浅拷贝和深拷贝，了解它们在内存上的区别，并掌握浅拷贝和深拷贝的常用实现方法。]]></description><category></category></item><item><title><![CDATA[类数组对象转为数组的方法]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/134916327</link><guid>https://blog.youkuaiyun.com/z020729/article/details/134916327</guid><author>z020729</author><pubDate>Sun, 10 Dec 2023 23:20:27 +0800</pubDate><description><![CDATA[在开发的过程经常会遇到一些类数组对象，例如arguments，类数组对象具有length属性，也可以通过下标访问到对应值，但是不能使用数组的方法，如果将类数组对象转为数组，数组方法可以帮助我们更快实现逻辑，下面列举一些常见的转换方法。]]></description><category></category></item><item><title><![CDATA[JS中闭包]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/134772889</link><guid>https://blog.youkuaiyun.com/z020729/article/details/134772889</guid><author>z020729</author><pubDate>Mon, 04 Dec 2023 00:07:35 +0800</pubDate><description><![CDATA[咱们先看两个比较抽象的理解，闭包是一个函数和其关联环境组成的结构体；闭包是一个函数和该函数周围状态捆绑在一起的组合。直接读这两句话，可以发现虽然对闭包的字面形容不同，但是表达意思一致。你肯定想知道这么抽象的话语，在代码中的具体体现是什么，答案还是两个方面，广义上，只要在JS中声明一个函数，那该函数就可以称为闭包；狭义上讲，当一个函数对外层作用域中产生访问时，这个函数就是闭包。也就是说你在js中写的每一个函数在广义上都是闭包，闭包的应用离我们很近。]]></description><category></category></item><item><title><![CDATA[ES6中实现继承]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/134520679</link><guid>https://blog.youkuaiyun.com/z020729/article/details/134520679</guid><author>z020729</author><pubDate>Mon, 20 Nov 2023 23:05:41 +0800</pubDate><description><![CDATA[本篇文章主要说明在ES6中如何实现继承，学过java的小伙伴，对class这个关键字应该不陌生，ES6中也提供了class这个关键字作为实现类的语法糖，咱们一起实现下ES6中的继承。]]></description><category></category></item><item><title><![CDATA[ES5中实现继承]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/134452023</link><guid>https://blog.youkuaiyun.com/z020729/article/details/134452023</guid><author>z020729</author><pubDate>Thu, 16 Nov 2023 22:54:45 +0800</pubDate><description><![CDATA[本篇文章主要说明在ES5中最通用最兼容的继承实现方式，继承作为面向对象的三大特性之一，在js中实现继承对代码的简洁性，逻辑的连贯性都有很大的帮助。]]></description><category></category></item><item><title><![CDATA[签名加密发送请求]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/134235424</link><guid>https://blog.youkuaiyun.com/z020729/article/details/134235424</guid><author>z020729</author><pubDate>Sun, 05 Nov 2023 22:14:11 +0800</pubDate><description><![CDATA[本篇文章介绍下通过HMAC-SHA1加密验证，将加密之后得到的签名作为参数发送请求，假如咱们需要按照下列要求将参数加密之后传递：咱们来逐步分析得到签名的步骤和最终发送请求需要携带的参数内容，本次实现是在node.js的环境下。]]></description><category></category></item><item><title><![CDATA[前端如何将项目打包部署到服务器]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/132384333</link><guid>https://blog.youkuaiyun.com/z020729/article/details/132384333</guid><author>z020729</author><pubDate>Sat, 19 Aug 2023 22:32:16 +0800</pubDate><description><![CDATA[本篇文章从前端项目打包开始，逐步完成项目部署到服务器的操作，这次采取的部署方案是通过vscode中Remote-SSH和SFTP两个插件实现项目部署到服务器，并在服务器上通过nginx代理将请求转发到对应的端口。]]></description><category></category></item><item><title><![CDATA[在vite中如何解决跨域问题]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/132260995</link><guid>https://blog.youkuaiyun.com/z020729/article/details/132260995</guid><author>z020729</author><pubDate>Sun, 13 Aug 2023 17:40:09 +0800</pubDate><description><![CDATA[本篇文章主要说明在vite中如何解决跨域问题，相信你看完这篇文章会有更深的理解。]]></description><category></category></item><item><title><![CDATA[vue3中effect函数中收集依赖，触发依赖代码实现]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/132135536</link><guid>https://blog.youkuaiyun.com/z020729/article/details/132135536</guid><author>z020729</author><pubDate>Mon, 07 Aug 2023 09:14:04 +0800</pubDate><description><![CDATA[想要理解vue3的响应式是如何实现的，就需要学习effect函数的相关内容，百闻不如一练，这篇文章咱们一块学习effect函数手撕代码的实现。]]></description><category></category></item><item><title><![CDATA[结合mini-vue分析组件更新的流程]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/132017197</link><guid>https://blog.youkuaiyun.com/z020729/article/details/132017197</guid><author>z020729</author><pubDate>Mon, 31 Jul 2023 11:10:04 +0800</pubDate><description><![CDATA[本篇文章我们结合mini-vue来分析组件的更新过程，当点击一个数字加1的按钮之后，vue进行了怎么样的操作，将更新后的数据呈现到页面上，看完这篇，相信你会有更深入的理解。]]></description><category></category></item><item><title><![CDATA[结合mini-vue源码分析组件的初始化过程]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/132006259</link><guid>https://blog.youkuaiyun.com/z020729/article/details/132006259</guid><author>z020729</author><pubDate>Sun, 30 Jul 2023 17:20:31 +0800</pubDate><description><![CDATA[本篇文章咱们结合mini-vue源码对组件的初始化过程进行分析，实例距离咱们的编程更近，可以结合mini-vue中提供的example来更好的分析和理解。]]></description><category></category></item><item><title><![CDATA[浅析mini-vue源码中get,set,effect的执行过程]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/131870875</link><guid>https://blog.youkuaiyun.com/z020729/article/details/131870875</guid><author>z020729</author><pubDate>Sun, 23 Jul 2023 11:42:33 +0800</pubDate><description><![CDATA[想要知道vue3响应式的实现原理，就需要知道get,set,effect的执行过程，本篇文章咱们来通过mini-vue浅析一下get,set,effect的执行过程。]]></description><category></category></item><item><title><![CDATA[浅析源码中patch到页面内容显示之间的过程]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/131823230</link><guid>https://blog.youkuaiyun.com/z020729/article/details/131823230</guid><author>z020729</author><pubDate>Thu, 20 Jul 2023 11:28:37 +0800</pubDate><description><![CDATA[本篇文章咱们一块跟随源码的足迹，浅析从patch到内容显示中间执行了哪些代码，实现了哪些功能，做了哪些事情。]]></description><category></category></item><item><title><![CDATA[浅析vue3源码从mount到页面的首次显示]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/131741015</link><guid>https://blog.youkuaiyun.com/z020729/article/details/131741015</guid><author>z020729</author><pubDate>Sat, 15 Jul 2023 17:43:56 +0800</pubDate><description><![CDATA[本篇博客咱们从上篇博客结束的mount部分延续分析，浅析从mount到页面的首次显示，主线和侧重点和只分析mount那篇博客不尽相同。]]></description><category></category></item><item><title><![CDATA[从配置文件入手浅析vue3入口文件的执行]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/131728724</link><guid>https://blog.youkuaiyun.com/z020729/article/details/131728724</guid><author>z020729</author><pubDate>Fri, 14 Jul 2023 18:30:29 +0800</pubDate><description><![CDATA[本篇文章从配置文件package.json着手，浅析一下到达入口文件位置的过程，从入口文件到达mount之前的过程。]]></description><category></category></item><item><title><![CDATA[浅析vue3源码中的mount首次挂载]]></title><link>https://blog.youkuaiyun.com/z020729/article/details/131624673</link><guid>https://blog.youkuaiyun.com/z020729/article/details/131624673</guid><author>z020729</author><pubDate>Sun, 09 Jul 2023 19:11:51 +0800</pubDate><description><![CDATA[本篇文章一块来浅析下vue3源码中的首次挂载，学习如何在浏览器调试源码，根据一条主线找到首次挂载实现的功能。下载好vue3的源码，在浏览器中打开todomvc.html文件。]]></description><category></category></item></channel></rss>