# my-blog **Repository Path**: qwq9527/my-blog ## Basic Information - **Project Name**: my-blog - **Description**: vue2 练习的个人博客网页,使用 mock 模拟数据,使用 vue 全家桶 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-14 - **Last Updated**: 2023-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目总结 ## 优化首页loading图片 loading图片有点大 # 项目的效果 1. 图片加载的效果 2. 箭头跳动的效果 3. mixin>fetchData.js 混入参数值得深思 4. 组件递归 1. 定义name,递归时用自己时就是这个name 2. 事件,单向数据流,点击后,子组件不能更改数据,只能将当前选中的item emit 给父组件,那么递归用自己的时候也将获得的item emit出去 5. const categoryId = +this.$route.params.categoryId || -1; this.$route.params.categoryId 是字符串或者 undefined ,如果是字符串直接用 + 转下,undefined 会变成 NaN,所以要用 || 短路运算符。不仅仅undefined转成数字变成NaN,如果乱传参数也会变成NaN,这样再使用 逻辑运算符号就非常完美了。按照这个思路,自己在写函数时,参数是数字,而且有默认值,如果使用时乱传,那么处理也类似 --结论 在这里是完美的 因为只有字符串或者undefined这种情况。 ```js /** * @params {Number} a / function f(a){ a = +a || 2;// 假设默认值为2,那么就能保证 a 为数字 // 还是有问题 a 若果为0,true时 就有问题 0-> a=2 按理说应该是 0 true-> a=1 按理说应该是 2 } 再修改下 function f2(a){ if(a===true){ a=2; }else if(a===1){ }else{ a = +a || 2; } console.log(a) } function isNumber(a){ return typeof a === "number"; } function isString(a){ return typeof a === "number"; } // 判断是否是数字,不是判断是否是字符串,是的话转换,其余都为2 function f3(a){ if(isNumber(a)){ console.log(a) if(isNaN(a)){ a=2; } }else if(isString(a)){ a=+a||2; }else{ a=2; } } ``` 需要看下大师课