<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a153052的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a153052</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a153052]]></copyright><item><title><![CDATA[关于element框架的el-image点击后，页面出现卡死等情况的解决方式]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/106136941</link><guid>https://blog.youkuaiyun.com/a153052/article/details/106136941</guid><author>a153052</author><pubDate>Fri, 15 May 2020 10:51:34 +0800</pubDate><description><![CDATA[当el-image标签被添加时，页面的body就会自动添加style属性

所以我们绑定一个点击事件删除样式就可以了
&lt;el-image style="width: 100px; height: 100px" :src="scope.row.logo" fit="scale-down" @click="cancelStyle()"/&gt;


cancelStyle() {
        document.body.style = null
 },


...]]></description><category></category></item><item><title><![CDATA[项目中常用正则（手机号、身份证、金额等）]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/106135682</link><guid>https://blog.youkuaiyun.com/a153052/article/details/106135682</guid><author>a153052</author><pubDate>Fri, 15 May 2020 10:08:09 +0800</pubDate><description><![CDATA[包含0的正整数
/^([1-9]\d*|[0]{1,1})$/
不包含0的正整数
/^[1-9]+\d*$/
金额。最多两位小数
/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/
身份证验证
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/
手机号码
/^[0][1-9]{2,3}]]></description><category></category></item><item><title><![CDATA[vue组件化通信之兄弟组件传值]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105855054</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105855054</guid><author>a153052</author><pubDate>Thu, 30 Apr 2020 10:03:07 +0800</pubDate><description><![CDATA[vue组件化通信之父向子请点击查看
vue组件化通信之子向父请点击查看
在vue中兄弟节点传值一般有两种方法：$parent和
$root， 建议使用前者
 使用$parent
**parent.vue**
&lt;template&gt;
	&lt;div&gt;
		&lt;childTest&gt;&lt;/childTest&gt;
		&lt;anotherChildTest&gt;&l...]]></description><category></category></item><item><title><![CDATA[关于axios请求报400如何获取报错信息]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105838251</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105838251</guid><author>a153052</author><pubDate>Wed, 29 Apr 2020 13:56:05 +0800</pubDate><description><![CDATA[不废话，直接放代码
addGoods(product).then(res =&gt; {
        if (res.code == 200) {
          this.$message.success("添加成功");
          this.handleFilter();
        } else {
          this.$message.error("添加失败...]]></description><category></category></item><item><title><![CDATA[vue组件化通信之子向父传值]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105832588</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105832588</guid><author>a153052</author><pubDate>Wed, 29 Apr 2020 09:45:59 +0800</pubDate><description><![CDATA[vue组件化通信之子向父请点击查看
vue中子向父传递消息一般使用$emit，方法比较简单，直接看代码
父组件
&lt;template&gt;
	&lt;div&gt;
		&lt;childTest @msg='myMsg'&gt;&lt;/childTest&gt;
		{{msg}}
	&lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
	impo...]]></description><category></category></item><item><title><![CDATA[vue的slot作用域插槽使用案例]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105809828</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105809828</guid><author>a153052</author><pubDate>Tue, 28 Apr 2020 11:35:58 +0800</pubDate><description><![CDATA[slot的使用场景：复用子组件的slot，且slot的内容不同
简单使用案例
子组件
	&lt;div&gt;
		&lt;h1&gt;子组件&lt;/h1&gt;
		&lt;slot name="child" msg='德玛西亚'&gt;&lt;/slot&gt;
	&lt;/div&gt;

父组件
	&lt;HelloWorld&gt;
		&lt;p slot-scope='child'...]]></description><category></category></item><item><title><![CDATA[vue组件化通信之父向子传值]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105793938</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105793938</guid><author>a153052</author><pubDate>Mon, 27 Apr 2020 16:44:40 +0800</pubDate><description><![CDATA[父向子组件传值
使用props进行传值
parent.vue

	&lt;template&gt;
	&lt;div&gt;
		&lt;childTest :msg='msg'&gt;&lt;/childTest&gt;
	&lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
	import childTest from  './childTest.vue...]]></description><category></category></item><item><title><![CDATA[Vue 跳转相同路由携带不同参数，而页面不刷新]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105770853</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105770853</guid><author>a153052</author><pubDate>Sun, 26 Apr 2020 16:01:24 +0800</pubDate><description><![CDATA[由于组件是复用的，若要对路由参数的变化作出响应的话，就需要使用 watch（监测变化） $route 对象
  created() {
    this.listQuery.code = this.$route.query.id;
    this.getList();
  },
  watch: {
    $route(to, from) {
    //当参数改变时就会触发比方法，以此达到数...]]></description><category></category></item><item><title><![CDATA[使用vue的sync修饰符进行子父组件的数据绑定]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/105764861</link><guid>https://blog.youkuaiyun.com/a153052/article/details/105764861</guid><author>a153052</author><pubDate>Sun, 26 Apr 2020 11:16:40 +0800</pubDate><description><![CDATA[官方文档
父组件代码
&lt;template&gt;
    &lt;div&gt;
        &lt;input type="button" value="我是父组件的按钮" @click="show" /&gt;
        &lt;!-- 在需要子组件修改的数据后加上.sync即可 --&gt;
        &lt;child :isShow.sync='isShow' v-...]]></description><category></category></item><item><title><![CDATA[ES6使用object的is()方法比较两个值]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103801135</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103801135</guid><author>a153052</author><pubDate>Thu, 02 Jan 2020 11:18:06 +0800</pubDate><description><![CDATA[此前js比较值，一般使用== 或 === 符号，我之前倾向使用后者===，因为可以避免比较时触发强制类型转换，但某些情况使用 === 依然有问题，比如再比较NaN ===NaN时，返回的是false，需要使用isNaN()才能正确比较，
在ES6引入了Object.is() 弥补了 === 的不准确运算，
Object.is() 接受两个参数，若参数的类型相同且值相同，则返回true
			con...]]></description><category></category></item><item><title><![CDATA[js防篡改对象之冻结对象]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103696155</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103696155</guid><author>a153052</author><pubDate>Wed, 25 Dec 2019 11:28:31 +0800</pubDate><description><![CDATA[const person = {
				name: '啦啦德玛西亚',
				_job: '无业'
			}
			Object.defineProperty(person, 'job', {
				get: function() {
					return this._job
				},
				set: function(newValue) {
					this._job = ...]]></description><category></category></item><item><title><![CDATA[防篡改对象之密封对象]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103695578</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103695578</guid><author>a153052</author><pubDate>Wed, 25 Dec 2019 11:05:55 +0800</pubDate><description><![CDATA[const person = {
				name: '啦啦德玛西亚'
			}
			console.log(Object.isExtensible(person))// true
			console.log(Object.isSealed(person))// false
			
			// 使用Object.seal()将对象修改为密封对象
			// 密封对象不可扩展，而且已有成员...]]></description><category></category></item><item><title><![CDATA[js防篡改对象之不可扩展对象]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103695116</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103695116</guid><author>a153052</author><pubDate>Wed, 25 Dec 2019 10:53:04 +0800</pubDate><description><![CDATA[const person = {
				name: '啦啦德玛西亚'
			}
			console.log(Object.isExtensible(person))//true
			
			//使用Object.preventExtensions()可以将对象修改为不可扩展对象，无法再给对象添加属性和方法
			Object.preventExtensions(person)
			
...]]></description><category></category></item><item><title><![CDATA[最安全的js类型检测]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103683782</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103683782</guid><author>a153052</author><pubDate>Tue, 24 Dec 2019 15:39:53 +0800</pubDate><description><![CDATA[众所周知js内置的类型检测机制不可靠，比如typeof操作符，对于正则和数组检测时返回值都是object， 而使用instanceof检测类型时，虽然可以对正则和数组正常验证，但验证undefined会报错，还有对于Symbol无法验证，
/* 
 安全的类型检测
 */
const typeChecking = {}
typeChecking.isArray = function(value) ...]]></description><category></category></item><item><title><![CDATA[px、em、rem、vm、vw 、vh、vmin 、vmax区分]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103628380</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103628380</guid><author>a153052</author><pubDate>Fri, 20 Dec 2019 10:42:20 +0800</pubDate><description><![CDATA[Px表示“绝对尺寸”（并非真正的绝对），实际上就是css中定义的像素（此像素与设备的物理像素有一定的区别，后续详细说明见文末说明1），利用px设置字体大小及元素宽高等比较稳定和精确。Px的缺点是其不能适应浏览器缩放时产生的变化，因此一般不用于响应式网站。
em表示相对尺寸，其相对于当前对象内文本的font-size（如果当前对象内文本的font-size计量单位也是em，则当前对象内文本的font...]]></description><category></category></item><item><title><![CDATA[elemnt的Table 表格使用注意事项]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103522138</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103522138</guid><author>a153052</author><pubDate>Fri, 13 Dec 2019 10:21:49 +0800</pubDate><description><![CDATA[elemnt的Table 表格使用注意事项
1、修改数据
&lt;template slot-scope="scope"&gt;
	&lt;el-button size="mini" @click='updatePassword(scope.row)'&gt;修改密码&lt;/el-button&gt;
	&lt;el-button size="mini" @click='resetPasswor...]]></description><category></category></item><item><title><![CDATA[pc浏览器内核详解]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/103390975</link><guid>https://blog.youkuaiyun.com/a153052/article/details/103390975</guid><author>a153052</author><pubDate>Wed, 04 Dec 2019 17:37:16 +0800</pubDate><description><![CDATA[浏览器最重要的部分是浏览器的内核。浏览器内核是浏览器的核心，也称“渲染引擎”，用来解释网页语法并渲染到网页上。浏览器内核决定了浏览器该如何显示网页内容以及页面的格式信息。不同的浏览器内核对网页的语法解释也不同，因此网页开发者需要在不同内核的浏览器中测试网页的渲染效果。
四大内核：
1、Trident内核，也称IE内核。
2、Webkit内核。
3、Gecko内核。
4、Presto内核。
各浏览器...]]></description><category></category></item><item><title><![CDATA[断言assert使用方法]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/102881255</link><guid>https://blog.youkuaiyun.com/a153052/article/details/102881255</guid><author>a153052</author><pubDate>Sun, 03 Nov 2019 12:36:41 +0800</pubDate><description><![CDATA[测试代码
    console.log('开始')
    console.assert(true, 'true')
    console.assert(false,'false')
    console.log('结束')

结果

可以发现：
assert方法中，第一个参数是判断条件，当为true时，不执行 。当为false时，
输出后面提示内容
且我们可以发现，assert报错时，不影...]]></description><category></category></item><item><title><![CDATA[js中的Object.create(null) 和 {} 的区别]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/102839698</link><guid>https://blog.youkuaiyun.com/a153052/article/details/102839698</guid><author>a153052</author><pubDate>Thu, 31 Oct 2019 16:00:40 +0800</pubDate><description><![CDATA[console.log(Object.create(null))
			console.log({})

结果图

根据结果我们不难发现，两者最大区别在于Object.create(null)创建的对象没有继承Object 所有Object.create(null)创建的对象也没有Object提供的方法，是一个非常纯净的对象

...]]></description><category></category></item><item><title><![CDATA[js_组合继承(最常用的继承方式)]]></title><link>https://blog.youkuaiyun.com/a153052/article/details/102744260</link><guid>https://blog.youkuaiyun.com/a153052/article/details/102744260</guid><author>a153052</author><pubDate>Fri, 25 Oct 2019 15:56:30 +0800</pubDate><description><![CDATA[&lt;script type="text/javascript"&gt;
			//组合继承: 将原型链和借用构造函数的技术组合在一起
			//使用原型链实现对原型方法的继承
			//使用构造函数实现对实例属性的继承
			//js中最常用的继承方式
			
			//super:超类
			function SuperType(name) {
			//超类属性
			//使用构造函数实现...]]></description><category></category></item></channel></rss>