继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第9天 Vue3 + Typescript 从0到1开发通用基础组件(3-14~3-16)

慕仔9208797
关注TA
已关注
手记 60
粉丝 1
获赞 7

课程名称:Vue3 + Typescript 从0到1开发通用基础组件

课程讲师:张轩

课程内容:

今天课程学习的主要知识点内容包括:
1、vue3 中的 defineComponent 函数;
2、vue3 中的 teleport 组件;

课程收获:

通过学习老师的视频课程和同学的公开笔记,主要收获如下:
一、vue3 中的 defineComponent 函数
defineComponent完全是为了服务ts所存在的,使用defineComponent进行组件定义。

<script lang="ts">
import { defineComponent } from 'vue'
const component = 
 defineComponent({
  name: 'HelloWorld',
  props: {
    msg: {
      required: true,
      type: String
    }
  }, 
  setup(props, context) {
    console.log(props)
    console.log(context)
  }
})
export default component;
</script>

二、vue3 中的 teleport 组件
1、解决的问题:
(1)vue开发中常常遇见组件嵌套很深的情况,可能会导致出现某些错误;
(2)dialog被包裹在其他组件之中,容易被干扰;
(3)样式也在其他组件中,容易变的混乱;

2、Teleport使用:
Teleport 传送 to="#modal" 渲染到modal 节点上;

3、案例举例

<template>
<teleport to="#modal">
  <div id="center" v-if="isOpen">
    <h2><slot>this is a modal</slot></h2>
    <button @click="buttonClick">Close</button>
  </div>
</teleport>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
  props: {
    isOpen: Boolean,
  },
  emits: {
    'close-modal': null
  },
  setup(props, context) {
    const buttonClick = () => {
      context.emit('close-modal')
    }
    return {
      buttonClick
    }
  }
})
</script>

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP