课程名称:Vue3 + Typescript 从0到1开发通用基础组件
课程讲师:张轩
课程内容:
今天课程学习的主要知识点内容包括:
1、使用 bootstrap CSS 样式框架美化页面;
2、全局头部组件的开发;
课程收获:
通过学习老师的视频课程和同学的公开笔记,主要收获如下:
一、使用 bootstrap CSS 样式框架美化页面
1、栅格系统
<div class="row">
<div class="col-4"></div>
<div class="col-4"></div>
<div class="col-4"></div>
</div>
2、其他美化效果
<template>
<div class="row">
<div v-for="column in columnList" :key="column.id" class="col-4 mb-4">
<div class="card h-100 shadow-sm">
<div class="card-body text-center">
<img :src="column.avatar" :alt="column.title" class="rounded-circle border border-light w-25 my-3" >
<h5 class="card-title">{{column.title}}</h5>
<p class="card-text text-left">{{column.description}}</p>
<a href="#" class="btn btn-outline-primary">进入专栏</a>
</div>
</div>
</div>
</div>
</template>
二、全局头部组件的开发
1、全局头部代码的实现,顺带温习前面学习的 vue3 组件定义和 bootstrap CSS 样式框架的使用:
<template>
<nav class="navbar navbar-dark bg-primary justify-content-between mb-4 px-4">
<a class="navbar-brand" href="#">者也专栏</a>
<ul v-if="!user.isLogin" class="list-inline mb-0">
<li class="list-inline-item"><a href="#" class="btn btn-outline-light my-2">登陆</a></li>
<li class="list-inline-item"><a href="#" class="btn btn-outline-light my-2">注册</a></li>
</ul>
<ul v-else class="list-inline mb-0">
<li class="list-inline-item"><a href="#" class="btn btn-outline-light my-2">"`你好 ${user.name}`"</a></li>
</ul>
</nav>
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue'
export interface UserProps {
isLogin: boolean;
name?: string;
id?: number;
}
export default defineComponent({
name: 'GlobalHeader',
components: {
Dropdown,
DropdownItem
},
props: {
user: {
type: Object as PropType<UserProps>,
required: true
}
}
})
</script>
2、定义一个组件的基本代码结构
<template>
<h1></h1>
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue'
export interface UserProps {
isLogin: boolean;
name?: string;
id?: number;
}
export default defineComponent({
name: 'GlobalHeader',
props: {
user: {
type: Object as PropType<UserProps>,
required: true
}
}
})
</script>