You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
8.2 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 用户故事|有了手感,才能真正把知识学透
你好,我是刘宏飞。
先做个简单的自我介绍吧,我作为非计算机专业的大龄前端,很多前端知识都是靠自学解决的。
对我来说,走前端这条路,虽然谈不上“地狱”模式,也属于“困难”了。但是自己选的路,自己走就是了。
不过,谁都想让自己的路越走越顺,我们想找到好的方法去快速有效地提升自己,有更好的待遇。我买了很多课程,也学了很多课程。这门课出来的时候,我也在想:“又一门前端的框架课程,还有必要学吗?”
所以借着这次用户故事的分享机会我想和你详细聊聊我学《Vue 3全家桶》这门课的一些过程和体会希望对你有所启发。
通过课程上线直播,我知道了“大圣”,对他的感觉就是“靠谱,接地气”,也了解这门课会解决什么样的问题。
用大圣的话大致就是“你用好多年琢磨出了一套少林长拳,以为可以横行江湖,等真的步入江湖,发现人家正规门派,入门就教这个”。
嗯,这话说到痛处了,前端的课学的也不少了,但是对我而言,还是感觉缺点什么。
## 这门课是怎么安排的
我平时的工作就是用Vue写业务代码由于需要要维护老代码业务代码中有很多Vue 2 的代码,所以我对 Vue 2 的基本使用还是比较熟悉的。由于现在Vue 3 以及 Vite 的优势,现在新的业务也逐渐在向 Vue 3 过渡在这种情况下我们对Vue3的熟练就不可或缺了。这门课刚好能满足我的这个需求。
总的来说,这门课内容结构由浅入深,循序渐进。
首先基础篇可以先打地基各个小节中穿插对比Vue 2 与 Vue 3 的差异重点讲解Vue 3的几个新的特性。总篇幅不算很长内容密度也不是很高适合入门。
个人建议学习的时候要稍微有耐心一些。不要因为“简单”就忽视了这些基础的知识点,因为“难”的在后面。还有我们打好基础,在课程后面会有不一样的收获。
然后就过渡到实战篇这里会手把手带我们将Vue 3 用起来了。工作中能用到的东西,这个章节全都覆盖了。我是学完这部分后,然后工作中遇到问题,再回过头来查,常看常新,这样学习效率会比较高。
然后就是进阶篇,这部分重点就是一个标准的组件库的实现。如果说我们前端的工作是“搭积木”,那组件就是“积木”。
只有了解积木才能更好的搭建,**如何更好地了解积木呢?没有比动手“实现”更好的方式了。**想想平时工作中用的 element-UIAnt-Design 这些顺手而又强大的组件学完这篇我们自己也能“造”出来了。
最后就是源码篇想要进阶源码是绕不过去的它也是最好的途径。但是我们自己硬啃难度比较大有时也会抓不住重点事倍功半。这篇的内容能带你直击“要害”教你学源码的同时将Vue 3的“核心”明明白白地展现出来。这个部分学明白了有关于Vue 3以至于所有框架在原理方面就没有能难倒你的了。
课程大概就是这个结构,我自己在学习的时候也有一些很好用的技巧。
## 我是怎么学这门课的
首先,我是以“追剧”的方式追这门专栏的。具体说就是定时定点,这门专栏一周三更,每到更新的时候就头也不回地学,用这种方法,我自然而然地养成了一个良好的学习节奏。
这样既可以避免“三天打鱼,两天晒网”的懒癌复发,又可以避免“囤到就是学到”这种“学债”增加,到时一看,斗志全无。稳定的学习节奏,对我们知识的获取和消化很重要。而且实践过程里,我也验证了,按照固定的节奏来学习,压力也会比较低。
每一篇内容,我会先快速浏览一遍,先大致了解所讲的内容、涉及的知识点是哪些。比如,是工程方面的,框架方面的,浏览器方面的内容等等,先心里大致有个数。
然后会看第二遍,尽量慢慢看,边看边想,这个知识点我在什么地方用到过,这个实现能用在什么样的场景,最好手边有个笔记本,把联想到的东西随手记下来。有一些工程实现虽然不熟悉,可以大致“猜”下怎么实现的,先记下来,回过头来验证就行了。
例如这段文章中经过简化后Vue 3 首次渲染 createApp 的实现代码。
```typescript
export const createApp = ((...args) => {
  const app = ensureRenderer().createApp(...args)
  const { mount } = app
  // 重写mount
  app.mount = (containerOrSelector: Element | ShadowRoot | string): any => {
    const container = normalizeContainer(containerOrSelector)
    if (!container) return
    const component = app._component
    if (!isFunction(component) && !component.render && !component.template) {
      component.template = container.innerHTML
    }
    container.innerHTML = ''
    const proxy = mount(container, false, container instanceof SVGElement)
    if (container instanceof Element) {
      container.removeAttribute('v-cloak')
      container.setAttribute('data-v-app', '')
    }
    return proxy
  }
  return app
}) 
function normalizeContainer(container){
  if (isString(container)) {
    const res = document.querySelector(container)
  }
  return container
}
```
这段代码逻辑和Vue 3项目的核心逻辑是一致的但却暂时屏蔽了Vue 3源代码中不必要的复杂性这样能更好地帮助我理解Vue 3首次加载的核心逻辑。像这样的例子每节课里面其实都有。
**最重要的是每节课涉及的代码一定要动手敲一遍,我发现,即使看似再简单的代码,看一遍和写一遍,跑一遍,所收获的东西是不一样的。**
学完每节课,我都会及时反馈。这个专栏是我头一次很“频繁”地写课后留言。起初是随便写了一点留言,没多久过来一看,竟有“大圣”的回复和同学们的点赞,有点高兴。之后,每一篇回复就写得更认真点,然后又有点赞,进而下篇继续这样的循环,渐渐地,这种“正反馈”进一步推动我的学习动力。
学习之后,定期复习巩固也很重要。所谓“温故而知新”嘛,每节课的知识点和代码过两天都要复习,复习强度因人而异,我一般是固定时间,比如说两天去浏览复习。工作上遇到问题的时候,去查找复习,理论结合实践,才能更好地掌握知识。
## 我的四条学习方法
最后,我为你总结提炼了四条学习方法,供你参考。
第一,良好的学习节奏很重要,既不要“三天打鱼,两天晒网”也不要“欠债”。
新的专栏我是当“剧”追的,当然极客时间也有个很好的功能可以制定学习计划,制定个合理的计划,跟着走,这样会没有那么大的学习压力。
第二,一定要动手,“学会”和“会用”是有很大区别的。虽然感觉大家都“懂”这个道理,但是还是要“动手”写“代码”,有了手感,距离真正把知识学透就更进一步。
第三,多留言,多反馈。极客时间上学习氛围很好,通过留言,我们可以得到正向反馈,进而推动学习热情,形成学习的良性循环。
第四,温故知新,有条理的复习,巩固学习成果,最终做到活学活用。
![图片](https://static001.geekbang.org/resource/image/2e/12/2e4d594564e176ea5773d44e16yy8d12.jpg?wh=1920x1038)
总的来说《玩转Vue 3全家桶》这门课不仅仅讲Vue 3更是通过 Vue 3 作为切入点,循序渐进,由浅入深地系统介绍前端要做的事,用到的知识技能,整个前端的框架。学完这个专栏,在面对前端工作中的问题时,就能更快地找到问题的解决方向,明白涉及的工程技术点,对症下药。
当然了,解决问题的能力还是要不断培养和积累,但是“方向”有时比“努力”更加重要。希望你和我一样,能通过这个专栏找到前端的提升方向,也希望我们都能学有所成,更好地实现自己的目标。