<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[littlesamll的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/littlesamll</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; littlesamll]]></copyright><item><title><![CDATA[Vue2和Vue3响应式原理]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/137864738</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/137864738</guid><author>littlesamll</author><pubDate>Fri, 10 May 2024 15:41:11 +0800</pubDate><description><![CDATA[通过Object.defineProperty()对每个属性进行监听，当对属性进行读取时会触发getter，对属性进行修改时会触发setter。Vue实例中data属性是一个定义的响应式数据对象，data中的每个属性都会带有__ob__属性，它是一个Observer对象（响应式的关键）。源码中是在初始注册响应式函数innitState中调用了initData函数来给data中的属性创建Observer实例；data属性分为两种处理情况：对象属性处理和数组属性处理。]]></description><category></category></item><item><title><![CDATA[vue3 + vue-pdf-embed实现放大、缩小、滚动翻页功能]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/135750536</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/135750536</guid><author>littlesamll</author><pubDate>Mon, 22 Jan 2024 17:16:17 +0800</pubDate><description><![CDATA[起初以切都还顺利，到了将滚动条设置到顶部 / 底部时，是通过子组件的pdf内容页来获取滚动距离，但是一直没有获取到，卡了半天突然想起项目中有个地方也修改过滚动距离，查看了下代码，才发现是获取的父容器的滚动距离。后来想了想，scrollTop为什么是父容器在改变，子组件一直都是零，个人思考结论是：滚动条是父容器的滚动条，不是子组件的。滚动翻页功能是最近的优化需求，在官网没有找到直接实现的方法，翻了翻网络，都是其他依赖的帖子，而且也没有滚动翻页的功能，思来想去，决定通过监听滚动距离来实现。]]></description><category></category></item><item><title><![CDATA[JS模块化]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/135655030</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/135655030</guid><author>littlesamll</author><pubDate>Wed, 17 Jan 2024 17:10:29 +0800</pubDate><description><![CDATA[module是一个 object ，保存着当前模块的信息，exports 是一个用于导出模块变量的对象，而 require 函数用于导入模块。而使用 require([依赖模块1，依赖模块2], function(){ })  语法定义的模块，它的依赖模块会被打包成单独的一个 chunk 并且被异步加载。缺点：同步阻塞的模块加载方式，使得在浏览器加载大模块（或依赖大量模块）脚本文件时，加载过程就可能出现白屏，无响应等问题，用户体验很不好。和 AMD 一样，它的定义接口使用一个名为 define 的函数。]]></description><category></category></item><item><title><![CDATA[随机生成包含大小写字母、数字的8位字符串]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/127784486</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/127784486</guid><author>littlesamll</author><pubDate>Wed, 10 Jan 2024 16:00:32 +0800</pubDate><description><![CDATA[需求：初始化密码包含大小写字母和数字。]]></description><category></category></item><item><title><![CDATA[Promise简单记录]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/135009514</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/135009514</guid><author>littlesamll</author><pubDate>Tue, 09 Jan 2024 16:14:01 +0800</pubDate><description><![CDATA[pending（等待状态），fulfilled（成功状态），rejected（失败状态）。状态流转只会是pending => fulfilled，或者pending => rejected；简单理解是一种为了解决回调地狱和异步问题的解决方案。从语法本质上看是一个对象，可以获取异步操作的消息。宏任务：script、setTimeout、setInterval I/O  （一个独立的主流程）任务分为宏任务（macro task）、微任务（micro task），同优先步。脱离主流程的顺序单独执行的队列。]]></description><category></category></item><item><title><![CDATA[JavaScript中的对象]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/134440060</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/134440060</guid><author>littlesamll</author><pubDate>Thu, 14 Dec 2023 14:28:13 +0800</pubDate><description><![CDATA[原型链：每个对象初始化时都会在内部生成一个属性prototype（原型），当访问对象属性时，如果对象内部不存在该属性，就去prototype里查找，而每个prototype也会有自己的prototype，按此规律一直找下去形成的连接就可以称为原型链。constructor：对象中的属性—构造函数，在被创建时自动生成，源自原型对象（构造函数），指向构造函数的引用。js实现继承：本质上是重写原型对象，将父对象属性方法作为自对象的属性方法，同时重写构造函数。原型对象：用来初始化对象的函数。**三、new **]]></description><category></category></item><item><title><![CDATA[原生input + vue 输入限制遇到的问题]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/132225247</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/132225247</guid><author>littlesamll</author><pubDate>Mon, 14 Aug 2023 10:29:36 +0800</pubDate><description><![CDATA[结合其他群友的说法，event.target.value和v-model绑定变量，二者的值其实还是独立的，但vmodel绑定了，又修改了event.target.value，修改event.target.value可以成功，但却不是修改的绑定变量，导致冲突。回顾编写逻辑代码的时候，试了很多种实现途径，写代码的逻辑没有提前规划，在试错中修正，导致思路没有很清晰，忽略v-model和event.target.value的细节差异。身高体重分别最多输入3、4位数，且只能输入数字。，所以真实的值刷新出来了。]]></description><category></category></item><item><title><![CDATA[作用域、this指针、上下文]]></title><link>https://blog.youkuaiyun.com/littlesamll/article/details/131776530</link><guid>https://blog.youkuaiyun.com/littlesamll/article/details/131776530</guid><author>littlesamll</author><pubDate>Wed, 26 Jul 2023 17:32:18 +0800</pubDate><description><![CDATA[作用域，this指针，上下文，bind，call，apply]]></description><category></category></item></channel></rss>