Vue框架基础6-单文件组件(SFC)

single-file components(单个文件组件)

文件后缀(扩展)名为 .vue,解决的问题:

  • 全局定义组件可能会出现命名冲突
  • 字符串的 template 没有语法高亮
  • CSS 的支持不友好
  • 没有明显的构建过程

  • 单文件组件语法:
<template>
  模板语法
</template>

<script>
  // 定义并导出组件的选项对象模块
</script>

<style lang="scss" scoped>
  /* 样式 */
  div {  }
</style>
  • template:视图结构
  • script:交互逻辑
  • style:样式
    lang:使用 css 预处理器,如:scss、less
    scoped:表示所书写的样式仅支持在当前组件中使用,其它组件不受影响

Vue Loader

Vue Loader 是一个 webpack 的 loader,它允许你以一种名为单文件组件 (SFCs)的格式撰写 Vue 组件

插槽

作用:内容分发
在组件定义时,可使用 <slot> 内置组件来占位,定义插槽内容。

  // <slot> 标签定义在要替换的组件 <template> 内部
  <template>
 <slot>
    <div class="title">代办事项列表</div>
 </slot>
 </template>
 // 这是替换 <slot> 插槽的内容 定义在调用组件标签的内部
  <todo-header>
      <p slot="title">主标题</p>
   <template v-slot:subtitle>副标题</template>
   // p 标签替换掉 <slot> 内部的 <div> 标签

在一个组件中,可以使用多个 <slot> 来定义插槽,要区分这些不同的插槽,就需要给 <slot> 添加 name属性,这就是命名插槽(具名插槽)。

// 用 属性 name 来命名区分插槽
<slot name="title">
    <div class="title">代办事项列表</div>
 </slot>

渲染命名插槽是的语法:

  • Vue 2.6 之前:<p slot="slot-name"> 即在标签中使用 slot 属性指定插槽名称
 // 2.6 之前的版本使用 slot 属性来指定那个插槽
`<p slot="slot-name">`
  • Vue 2.6 及之后:可使用 v-slot 指令:
<template v-slot:subtitle>
  <h3>副标题</h3>
</template>

v-slot 可简写为 #,即:

<template #subtitle>
  <h3>副标题</h3>
</template>
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值