<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一杯清泉]]></title><description><![CDATA[Android开发的点点滴滴]]></description><link>https://blog.csdn.net/yoonerloop</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; yoonerloop]]></copyright><item><title><![CDATA[JavaScript实现继承的几种方式]]></title><link>https://blog.csdn.net/yoonerloop/article/details/130201644</link><guid>https://blog.csdn.net/yoonerloop/article/details/130201644</guid><author>yoonerloop</author><pubDate>Mon, 17 Apr 2023 16:36:42 +0800</pubDate><description><![CDATA[核心在于改造原型链，利用原型链的方法，实现了方法的继承。原型链+构造函数组合的方式，发挥二者之长。]]></description><category></category></item><item><title><![CDATA[webpack 配置介绍]]></title><link>https://blog.csdn.net/yoonerloop/article/details/129746511</link><guid>https://blog.csdn.net/yoonerloop/article/details/129746511</guid><author>yoonerloop</author><pubDate>Tue, 28 Mar 2023 11:09:41 +0800</pubDate><description><![CDATA[development(开发环境) 和 production(生产环境) 这两个环境下的构建目标存在着巨大差异，通过 webpack-merge 可以将基础的配置抽象到 webpack.base.js 中，开发环境和线上环境分别使用 webpack.dev.js 和 webpack.prod.js，然后 merge（webpack.base.js）即可。该功能在打包模式为production时，默认开启，在打包时候回检测是否有标识，有副作用，没有副作用在打包时候不会参与打包。当超过150KB 建议使用。]]></description><category></category></item><item><title><![CDATA[iframe和跨域]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128716191</link><guid>https://blog.csdn.net/yoonerloop/article/details/128716191</guid><author>yoonerloop</author><pubDate>Fri, 24 Mar 2023 10:34:47 +0800</pubDate><description><![CDATA[如上服务端配置 header 中 Web端的域名，*表示全部通过，也可以指定固定域名。这样，Web 端访问时候就可正常打开指定的域名了，否则会出现跨域问题。服务器中转跨域，script 标签没有跨域限制，可以使用script 标签加载不同的 src，解决跨域问题。在生产环境 nginx 代理，项目 config.js配置。5、postMessage+iframe：不常用，漏洞大，xss 攻击，兼容性差。同源是指：协议+域名+端口完全一致。2、获取嵌套的iframe的上次层window。]]></description><category></category></item><item><title><![CDATA[Android项目接入React Native方案]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128726276</link><guid>https://blog.csdn.net/yoonerloop/article/details/128726276</guid><author>yoonerloop</author><pubDate>Wed, 18 Jan 2023 15:09:31 +0800</pubDate><description><![CDATA[本篇文章主要介绍在现有的Android项目中接入React Native的接入过程，分析接入过程中的一些问题和解决方案，接入RN的平台为Android，开发环境为Mac，开发工具为Android Studio。]]></description><category></category></item><item><title><![CDATA[dom 小知识总结]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128716103</link><guid>https://blog.csdn.net/yoonerloop/article/details/128716103</guid><author>yoonerloop</author><pubDate>Tue, 17 Jan 2023 14:50:08 +0800</pubDate><description><![CDATA[6、window.getComputedStyle(element,null).props：获取css的style对象，后面可以跟具体值属性。是有第二个参数的，第二个参数是修改this 的指向的，如果传递的不是对象，会强制转为包装类对象，如果不传，指向 window。5、nodeType：节点编号，可以使用该编号过滤node节点生成有效的元素节点。包含所以的节点，包含：注释节点，换行的文本节点等无效的内容。1、nodeName：获取节点的名称，只读。2、nodeValue：获取节点的值，可写。]]></description><category></category></item><item><title><![CDATA[in、hasOwnProperty、instanceof 使用]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128520136</link><guid>https://blog.csdn.net/yoonerloop/article/details/128520136</guid><author>yoonerloop</author><pubDate>Mon, 02 Jan 2023 13:24:43 +0800</pubDate><description><![CDATA[对象是否是某个子类。]]></description><category></category></item><item><title><![CDATA[js函数之call和apply]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128512242</link><guid>https://blog.csdn.net/yoonerloop/article/details/128512242</guid><author>yoonerloop</author><pubDate>Sun, 01 Jan 2023 14:06:44 +0800</pubDate><description><![CDATA[可以看出改变了this 的指向，和apply的区别是后面是一个数组，其他没啥区别，均可以改变this 指向Car.apply(newCar, ['兰博基尼', 'red'])。结果一致，调用test()默认会调用call，二者效果一致，call省略掉了。call还有一个很重要的功能是改变this的指向。Car.call(newCar, '兰博基尼', 'red')//参数1：对象，参数2，3，4……"brand": "兰博基尼",]]></description><category></category></item><item><title><![CDATA[作用域、闭包、立即执行函数]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128471899</link><guid>https://blog.csdn.net/yoonerloop/article/details/128471899</guid><author>yoonerloop</author><pubDate>Wed, 28 Dec 2022 17:49:01 +0800</pubDate><description><![CDATA[一个执行期上下文定义了一个函数执行时的环境，函数每次执行时对应的执行上下文都是独一无二的，所以多次调用一个函数会导致创建多个执行上下文，当函数执行完毕，执行上下文被销毁。如上，函数test是全局作用域，函数内部的 a，b 则是局部作用域，当在外界调用时候内部时候，a 或者 b 执行结束直接被释放掉。在函数内部定义的函数、变量等，被叫做局部作用域，局部作用域的数据的生命周期在该函数执行完以后就被释放。如上，函数test，变量 a 就是全局作用域，在全局生效，不会被销毁，除非程序结束。]]></description><category></category></item><item><title><![CDATA[React 自定义组件实现手写签名]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128434884</link><guid>https://blog.csdn.net/yoonerloop/article/details/128434884</guid><author>yoonerloop</author><pubDate>Sun, 25 Dec 2022 14:19:30 +0800</pubDate><description><![CDATA[【代码】React 自定义组件实现手写签名。]]></description><category></category></item><item><title><![CDATA[微信小程序获取组件大小]]></title><link>https://blog.csdn.net/yoonerloop/article/details/128434870</link><guid>https://blog.csdn.net/yoonerloop/article/details/128434870</guid><author>yoonerloop</author><pubDate>Sun, 25 Dec 2022 13:59:54 +0800</pubDate><description><![CDATA[【代码】微信小程序获取组件大小]]></description><category></category></item><item><title><![CDATA[H5中常见的 Android 和 iOS 兼容性问题]]></title><link>https://blog.csdn.net/yoonerloop/article/details/127490310</link><guid>https://blog.csdn.net/yoonerloop/article/details/127490310</guid><author>yoonerloop</author><pubDate>Mon, 24 Oct 2022 13:16:41 +0800</pubDate><description><![CDATA[最好在代码中不要主动focus()，可能会在真机上引起页面布局被iOS 软键盘顶上去，而Android、Google、Safair 中则正常。]]></description><category></category></item><item><title><![CDATA[React实现优雅的弹窗]]></title><link>https://blog.csdn.net/yoonerloop/article/details/126829609</link><guid>https://blog.csdn.net/yoonerloop/article/details/126829609</guid><author>yoonerloop</author><pubDate>Tue, 13 Sep 2022 11:35:57 +0800</pubDate><description><![CDATA[实现弹窗的原理关键在于,如何将弹窗组件挂载到任意的dom上，参考weui.js，提供了思路，可以通过append将元素添加到指定的父节点上，来实现弹窗的显示，隐藏的时候在移除该元素即可，如下示例：在react同样可以使用该思路来实现，弹窗的显示和隐藏。]]></description><category></category></item><item><title><![CDATA[useEffect、useMemo、useCallback使用场景分析]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125193784</link><guid>https://blog.csdn.net/yoonerloop/article/details/125193784</guid><author>yoonerloop</author><pubDate>Sat, 20 Aug 2022 21:18:54 +0800</pubDate><description><![CDATA[getName()会在每次组件渲染的时候执行dom，尽管name没有变化，我们需要让name变化的时候才渲染dom，否则保持原有的数据，这时候就用到了useMemo。]]></description><category></category></item><item><title><![CDATA[常用hooks总结]]></title><link>https://blog.csdn.net/yoonerloop/article/details/124829029</link><guid>https://blog.csdn.net/yoonerloop/article/details/124829029</guid><author>yoonerloop</author><pubDate>Mon, 25 Jul 2022 08:50:18 +0800</pubDate><description><![CDATA[1、useEffact

参考：https://www.cnblogs.com/guanghe/p/14178482.html

2、useState

作用：更新变量，触发render。


const [loading, setLoading] = useState(true);


当loading变化时候会触发render。

3、useMemo

作用：解决hooks会触发多次无用的渲染问题。如果useMemo(fn, arr)第二个参数匹配，并且其值发生改变，才会多次执行执行，否则只执行一次，如]]></description><category></category></item><item><title><![CDATA[CSS像素单位]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125380908</link><guid>https://blog.csdn.net/yoonerloop/article/details/125380908</guid><author>yoonerloop</author><pubDate>Sat, 09 Jul 2022 10:05:58 +0800</pubDate><description><![CDATA[整个屏幕的一个像素点。当默认值改了，基准值也会跟着改，尺寸是基于父元素的设置的值改变的：





会导致内层的字体越来越大，实用性不强。











五、calc

动态计算大小，例如下面动态填满一屏。





height: calc(100vh - 6rem);表示banner的高度为上面整屏高度减去nav的高度。注意：运算符前后需要有空格，calc(100vh-6rem)这样写错误。...]]></description><category></category></item><item><title><![CDATA[CSS的margin失效、塌陷和兼容问题]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125340156</link><guid>https://blog.csdn.net/yoonerloop/article/details/125340156</guid><author>yoonerloop</author><pubDate>Wed, 06 Jul 2022 21:20:37 +0800</pubDate><description><![CDATA[在标准文档流中，竖直方向的margin不叠加，以较大的为准，水平方向不影响，可以叠加。注意是标准文档流，不是标准文档流不存在塌陷现象。


        要想使p的margin生效，需要给父布局的div添加border，否则margin无效。margin表示兄弟和兄弟之间的距离，最好不要使用margin表示父子之间的距离，要善于使用padding。




四、margin的IE6兼容问题

1、margin双倍问题         浮动方向和margin方向相反，左浮动+右margin2、IE6的三像素]]></description><category></category></item><item><title><![CDATA[CSS实现图片实现正方形的效果]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125584582</link><guid>https://blog.csdn.net/yoonerloop/article/details/125584582</guid><author>yoonerloop</author><pubDate>Sun, 03 Jul 2022 15:27:23 +0800</pubDate><description><![CDATA[设置css属性高度等于宽度、或者宽度等于高度。    postcss-aspect-ratio-polyfill - npmCSS属性之aspect-ratio - 掘金]]></description><category></category></item><item><title><![CDATA[CSS定位]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125339972</link><guid>https://blog.csdn.net/yoonerloop/article/details/125339972</guid><author>yoonerloop</author><pubDate>Sun, 03 Jul 2022 14:34:03 +0800</pubDate><description><![CDATA[不脱离标准流        相对自己原来的位置移动，形影分离，本质上真实的位置还在原来的位置，设置margin还是原来位置的margin，移动后的位置是其影子，视觉效果上是移动了。





1、相对定位有压盖效果，一般不用作『压盖效果』，作用就两个：2、定位：        脱离标准流





 1、绝对定位和原来的自己的位置没有任何关系2、定位3、子绝父相        儿子绝对定位，父亲相对定位：         儿子设置绝对定位，儿子就跑到父div里面去了。否则会在父布局外面，如果有多个父布局设置]]></description><category></category></item><item><title><![CDATA[CSS盒模型、标准文档流、浮动]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125267441</link><guid>https://blog.csdn.net/yoonerloop/article/details/125267441</guid><author>yoonerloop</author><pubDate>Fri, 17 Jun 2022 20:33:47 +0800</pubDate><description><![CDATA[无论是div、span、a都是盒子，一个图片、表单元素一律看做文本看待。使用浮动浮动的性质：


效果：原因是div没有高度，不能给孩子一个高度，要清除浮动，需要给父元素设置高度。 给父元素的div添加固定高度。 


现实开发中高度很少出现，因为父布局会被内容撑高，很多没有高度设置。 子类div自己添加clear:both。


clear:both：清除左右浮动对自己的影响，这种方式有一个问题，margin失效。两个div之间没有任何间隙了，设置margin属性不生效。 在box1和box2之前插入一个]]></description><category></category></item><item><title><![CDATA[CSS的继承性和层叠式]]></title><link>https://blog.csdn.net/yoonerloop/article/details/125232570</link><guid>https://blog.csdn.net/yoonerloop/article/details/125232570</guid><author>yoonerloop</author><pubDate>Sat, 11 Jun 2022 11:18:39 +0800</pubDate><description><![CDATA[color、text-开头的、line-开头的，font-开头的这些关于文字样式的，都可以继承；所有的盒子的、定位的、布局属性都不能继承。多个选择器同时作用在同一个元素上时候，看权重，那个高，最后显示那个，优先级从高到低分别是：先比较ID选择器数量，在比较类选择器数量，最后比较标签选择器数量最后显示的绿色，因为ID选择器数量优先级高，所以以2为准了，如果都一样，谁写在后面，谁的生效。如果不能直接选中某个元素权重是0，如通过继承而来的权重是0，开始数权重之前一定要看看是不是真的选中文字所在的最内层的标签，没选]]></description><category></category></item></channel></rss>