一、components/Dropdown.vue
<template>
<div class="dropdown">
<button
class="btn btn-secondary dropdown-toggle"
type="button"
@click="toggle"
>
{{name}}
</button>
<div class="dropdown-menu" style="display:block" v-if="isShow">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from "vue";
export default defineComponent({
name: "Dropdown",
props:{
name:{
type:String
}
},
setup(){
const isShow = ref(false);
const toggle = ()=>{
isShow.value = !isShow.value
}
return {
isShow,
toggle
}
}
});
</script>
二、GlobalHeader.vue中使用
<template>
<nav class="navbar navbar-light bg-light border mb-2" style="color:#fff">
<div class="container">
...
<div v-else class="list-line mb-0">
<dropdown :name="user.name"></dropdown> ++
</div>
</div>
</nav>
</template>
<script lang="ts">
import { defineComponent, PropType } from "vue";
import Dropdown from './Dropdown.vue'
export interface UserProps {
isLogin: boolean;
name?: string;
id?: number;
}
export default defineComponent({
name: "GlobalHeader",
props: {
user: {
type: Object as PropType<UserProps>,
required: true
},
},
components:{
Dropdown ++
}
});
</script>