【学习打卡】第10天 【2022版】Vue3 系统入门与项目实战第十讲
2022/8/17 4:22:53
本文主要是介绍【学习打卡】第10天 【2022版】Vue3 系统入门与项目实战第十讲,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称: 2022持续升级 Vue3 从入门到实战 掌握完整知识体系
课程章节: 商家展示功能开发(上)
主讲老师: Dell
课程内容:
今天学习的内容包括:
页面接收数据如果是引用数据类型(对象或数组)时,建议使用 reactive 包装
课程收获:
10.1 心得:
可选链操作符提供了一种方法来简化被连接对象的值访问,在一定程度上简化了写法
let obj = { children:{ name:"李四" } } // 这么写没毛病,但是假如obj.children为null或undefined呢? obj.children.name; // 一般我们这么来避免 if(obj.children)( // ... } // --------------------分割线--------------------------------- // 接着上面那个问题,那再次假如obj.children.name为null或undefined呢? // 一般来这么写 if(obj.children && obj.children.name){ // ... } // --------------------分割线--------------------------------- // 以上的写法就显得有点冗余了,试试可选链写法吧: // 当obj.children为undefined或null的时候,这时候访问会被截断,且不会继续访问obj.children.name if(obj.children?.name){ // 同等 if(obj.children && obj.children.name){} // ... }
reactive 接收数据建议使用const nearbyList = reactive({ list:[] })
setup(){ const nearbyList = reactive({ list:[] }) const getNearbyList - async ()=>{ const result-await axios.get("https://www.fastmock.com") if(result?.data?.errno=0){ nearbylist.list-result.data.data console.log(result,data,data) console.log(nearbyList.list) } getNearbyList() console.log(nearbyList.list) const {list}-toRefs(nearbyList) console.log(list) return{list} }
10.2/3 心得:
组件中样式的动态切换:根据父组件传入值的不同显示/隐藏样式
父组件:
<div> <ShopInfo v-for="item in list" :key="item._id" tem="item :item ="item" :hasBorderBottom="true" /> </div>
<ShopInfo :item="item" :hasBorderBottom="false" />
子组件:
props:["item","hasBorderBottom"]
<div class="nearby_content" :class="{'nearby_content--hasBorderBottom':hasBorderBottom?true: false}" />
10.6/10.7 心得:
router 和 route 的区别:
router 获取的是整个路由,通常用于页面跳转;route 获取的是某一个路由,通常用于获取路由参数
import { useRouter,useRoute } from "vue-router" export default { setup(){ const router = useRouter() const route = useRoute() console.log(route.params.id) }
当网速不好导致图片无法很快加载出来的时候,图片会先变成裂图,解决这个问题的方法是使用 v-show 或 v-if 判断是否有图片,当有图片的时候再展示
<ShopInfo :item="item" :hasBorderBottom="false" />
10.13 心得:
点击高亮显示,其他取消高亮:
用点击的tab值和每一个tab值对比,一样的话则当前tab值高亮显示
<div class="category_item" :class="['category__item--active': currentTab === item.tab)" v-for="item in categoryList" :key="item.id" @click="() => handleCategoryClick(item.tab)" > {{item.name}} </div>
函数传值写法:
const handleCategoryClick=(tab)=>{ console.log(tab) }
10.14 心得:
当其他模块需要用本模块里面的函数时,我们无法将本模块的函数导出让别的模块使用,这时候我们可以这样做:
1.将别的模块的参数导出出来,然后本模块接收。
2.当别的模块参数变化时,说明需要调用本模块的函数,这时候我们可以通过使用 watchEffect 巧妙的实现这个需求。因为 watchEffect 的作用就是监听,在页面加载进来的时候就开始监听,然后内部检测到依赖代码有变化了重新执行内部代码
watchEffect 内部监听了currentTab 的值,所以当 currentTab 的值发生变化的时候,watchEffect 就可以监听到然后执行 getContentData 函数,而且 watchEffect 还有一个好处是页面第一次加载进来的时候就会执行一次,让页面获取了数据展示出来
const usecontentEffect=(currontTat)=>{ const route-useRouto() const data·reactive({ contentList:[] ({ const getContentData·async()=>( const result=await axios.get(shop/$(route.parans.id)/products?tab=$currentTab.value if(result).data7.errno==0)( data.contentList-result.data.data watchEffect(()=>( getContentData() }) const(contentList}=toRefs(data) return{contentlist) }
这篇关于【学习打卡】第10天 【2022版】Vue3 系统入门与项目实战第十讲的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程