`, ` Welcome to our website.`这样的标签。取而代之的是,你会看到像`
你可以将一个网站想象成一个由无数个小积木拼搭而成的巨大结构。过去,我们只能用HTML提供的有限几种积木(div, p, span, table等等),然后通过CSS来给它们穿上不同的“皮肤”和“装饰”。如果某个结构需要重复出现,比如一个用户信息卡片,我们就要在HTML里复制粘贴很多次,然后用CSS去控制每一处细节。这非常低效,而且一旦需要修改,可能要改几十甚至上百个地方。
现代前端框架的核心理念就是“组件化”。开发者可以把一个复杂的功能,比如上面说的用户信息卡片,封装成一个独立的“组件”。这个组件不仅仅包含HTML结构,还可能包含它自己的样式(CSS)和行为逻辑(JavaScript)。然后,我们就可以像使用HTML标签一样,在任何地方“插入”这个组件,并可以传递一些“属性”(props)来定制它的内容,比如`name="Bob"`,`avatarUrl="..."`。
这样做的好处是显而易见的。首先,可复用性大大增强。一个组件写好一次,就可以在项目的任何地方使用,极大节省了开发时间。其次,可维护性也得到了质的飞跃。如果你想修改用户信息卡片的样式,只需要修改那个组件的代码,所有使用该组件的地方都会自动更新,避免了查找和修改大量重复代码的麻烦。
那么,为什么说这是一种“演进”而不是“放弃”呢?因为框架最终还是要将这些组件渲染成浏览器能够理解的标准HTML、CSS和JavaScript。这些框架提供的“类HTML”语法,比如Vue的`.vue`文件中的``部分,或者React的JSX,它们本质上是一种模板语言或者语法糖。它们提供了一种更结构化、更声明式的方式来描述UI的结构和状态。
比如,在React的JSX中,你可以写成这样:
```jsx
function Greeting({ name }) {
return (
Hello, {name}!
);
}
```
这里的 `{name}` 就是一个JavaScript表达式,它允许你在HTML结构中动态地插入数据。当 `name` 的值改变时,UI会随之更新,这是传统HTML无法直接做到的。这种能力,使得UI能够与应用的数据进行实时的绑定,从而创建出动态、交互丰富的用户体验。
再比如,当你在组件中写一个循环来渲染列表时,可能看起来像这样:
```jsx
{items.map(item => (
))}
```
这看起来像是HTML的``和`
总而言之,现代前端框架并没有抛弃HTML作为最终输出的根基,而是通过引入组件化、数据绑定、逻辑嵌入等概念,提供了一种更高级、更强大、更适合构建复杂交互式应用的开发范式。它允许开发者用更接近“描述”UI应该是什么样子,而不是“一步一步”构建UI的方式来工作,这才是其核心的进步之处。这就像我们从用锤子钉木头升级到了用3D打印机制造复杂的零件,最终目标都是为了得到一个完整的、功能强大的产品。
路过
看 Html5 规范 4.13 Custom elements ……
随意定义标签在规范范围内,既然明确说是可以的且支持的,为啥不算常规用法了……
还有你说的 vnode (vdom)这玩意展现也得是 dom 啊,只不过库、框架给封装了,使用者一般情况下不用去直接调用 dom api 罢了……
非要说常规的话,还说10多年的用法,那可能指的是 1998年的 Html4 规范时候的用法。
可这玩意已经是过去时了吧。
现在谁还按当年的常规方法加DTD,HTML tag 大写啥的弄网页呢……
还有你说的,语义这玩意,也是有时代背景的。
当年那是 真●互联网 啊,页面链接随便跳,爬虫各种爬。页面写的乱的,爬虫爬回去的页,码农不好分析是啥啊,就推崇规范性质的语义化和没css后裸奔时的结构化。不就为了爬虫爬回去好分析内容,跟搜索上好搜到,然后来流量好赚钱么,对,就是那个什么SEO。
现在啥年代了,APP满天飞,社交网络满天飞,短视频满天飞,一个个的都自己修围墙,爬虫根本爬不到的说。就算能爬,爬出视频页,内容得视频抽帧恩熙,跟页面 tag 有啥关系了又?你看最近百度搜索都不开始亏钱了。
这时候干嘛语义化,语义化给谁用?能唯一用处就只有给读屏器用了。要是不讲究这个,目标用户群又不是读屏器用户群的,那(规范性质的)语义化干嘛。这时候追求下开发维护时候的语义化让开发维护更方便没准就是首要任务的说了。
前端等了W3C二十几年指望能把DOM API升个级,最后还是jQuery成了救世主,在那之后就没人再信DOM API了……
你们升级ECMAScript就好了,剩下的我们用库来解决……事实上这也是比较正确的道路……W3C也不需要再用语义化标签和XHTML继续自嗨了。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有