注:我所有的vue知识皆通过“2019年coderwhy vue-vuejs从入门到精通教程”这个视频所习得。
组件在不同的地方复用时可能会有不同的需求,以购物网站m.jd.com为例。
搜索栏这块,它们有很多区别,但是也有很多共性。
如果单独给每一个都去封装一个组件显然不合适,如:假设每个页面都有返回,这部分内容我们就要重复去封装,不合理。
但是如果封装成一个,也不合理。如首页搜索栏左侧是菜单,其它页面是返回,有些中间是搜索,有些中间是文本等。
抽取相同的点,保留不同的点。
最好的方式就是将共有的抽取到组件中,不同的暴露为插槽。
预留了插槽就可以根据需求,决定插槽中插入的内容:搜索框 / 文本 / 菜单。
插槽的基本使用:全体一致的情况下,给一个或多个组件特殊需求,代码如下。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta chars