1.7
第一章 · 第 7 节

为什么不一直用 HTML

这一节你会拿到

你会亲手改一次"手写多页 HTML"的导航:改一个字,就得在 5 个页面里分别修改 5 次。改完之后,你会直观地理解为什么需要框架。

回头一题

这道题不考这一节,考前面学过的。想不起来就回去翻一眼再答——记不住的东西,真用的时候一样会卡。

装好了前端 skill,可让它重做的页面还是一样寡淡。最可能漏了什么?

你的 Steve's Repair 官网已经做出来、也调好看了(设计基础skills)。它现在是一个个单独的 HTML 文件:首页一个、服务一个、价格一个、关于一个、联系一个。页面一多,就会冒出一个挺烦人的问题。这一节让你自己改一遍就明白了。

这一节不写代码、不装任何东西,只在这个网页里操作。它是一节铺垫:先让你亲身体会痛点,后面 1.9 认识框架 才会讲怎么解决。

每一页都自己抄了一份导航

几乎每个网站顶部都有一条导航栏(首页 / 服务 / 价格 / 关于 / 联系),就是页面之间来回跳的那排链接。你手写的每个 HTML 文件,都得自己抄一份一模一样的导航。5 个页面就是 5 份完全相同的导航,分别躺在 5 个文件里。

说明

这 5 份内容一模一样,但它们是 5 段互不相干的文本。改了其中一份,另外四份原封不动。

动手:改一次导航,看看要改几次

操作 · 选中一个页面 → 输入新导航文字 → 点"应用到选中页" → 重复直到 5 页全改完。
你已经手动改了 0 次 / 共 5 页

点一张卡片下方的"选这页"选中它,改好文字后点"应用到选中页"。

5 页都改完了。 为了改一处文字,你把几乎一样的动作重复了 5 遍。要是页面有 20 个,或者导航上挂着 8 个链接呢。
而且这还是你一次没出错的情况。下面看看万一改漏一页会怎样。

改漏一页,长这样

页面到了 20 个,最容易出的不是累,是改着改着漏了一页。漏掉的那一页,导航就和别的页对不上。问题在于:这种错当场很难发现,你得一页页点开比对才看得出来。下面是一个改漏的现场,左边那页就是被忘掉的:

联系.html · 漏改了,还停在旧导航
价格.html · 已改,导航是新的

两页摆一起一眼能看出差别,可你平时不会把 5 页并排看。访客今天进"价格"页看到"关于我们",明天进"联系"页看到"关于",就会觉得这站做得不专业。页面越多,越容易漏,越难自己发现。

手写多页 vs 使用框架

手写多页 HTML

  • 每页都复制一份导航和页脚
  • 修改一处,需要逐一前往多处同步修改
  • 页面越多,越容易改漏、改错,越难维护

有"框架"之后

  • 导航和页脚只写一份,这一份叫"组件"
  • 每个页面都引用这同一份
  • 改那一份,所有页面自动跟着变
HTML 本身没毛病。

你前面学的那些照样管用。问题只在页面变多、重复的东西变多之后才冒出来。框架不是来取代 HTML 的,它替你管住重复,最后吐出来的还是浏览器认得的网页。

同一段内容在好几页里重复出现,你想改一次就到处生效。这就是框架和组件要解决的问题。框架长什么样、怎么让 Agent 把 Steve's Repair 搬过去,后面会讲。在动手搬之前,先在 1.8 存档(Git) 拉一张安全网,改坏了能退回来;然后 1.9 认识框架 里你会看到"改一处、全都跟着变"是怎么做到的。

动手练习:把 5 页改完

操作 · 真的把 5 页都改一遍,

别只看不点。计数器走到 5,你会收到一段话。下面这几条做到了,这一节就算过:

这一节 · 自检

这一节过了,往下走。

前两项动手做到了会自动勾上;后两项自己确认后再勾。

点不动?照这三条查


一、点了"应用到选中页"没动静:多半是没先选页。先点某张卡片下方的"选这页",卡片描蓝边了再点应用。
二、计数器不涨:同一页改两次只算一次,它数的是"有几页被改过"。去选还没改的那几页(左边有红杠的)再改。
三、整个装置都点不动:这是网页里的小程序,刷新一下页面再试;还是不行,就先看懂上面那张"改漏"示意图,道理是一样的。

做完想一想

如果 Steve 后来又要加一个"预约"页,变成 6 页、7 页,你愿意每次改导航都从头再来一遍吗?把感受记一句话,下一关用得上。

小测:12 个页面改一个号码

Steve 的站现在有 12 个页面,每页顶部都各自抄了一份相同页脚。他想把页脚的电话号码换成新的。手写 HTML 的话,这件事最大的麻烦是什么?

对"组件""框架"还有疑问,想请人用通俗的语言为你解释?把问题发到群里问问大家,或者直接向 Abel 或助教提问,请他们用"导航只写一份、各页引用"的方式为你讲解。

答对了!