feat: Add Vue3 exercises and interview plan
- Introduced Vue3 exercises covering composable API, reactivity, lifecycle hooks, and built-in components. - Added structured interview plan for frontend candidates focusing on HTML, CSS, JavaScript, TypeScript, and Vue. - Included starter files for each exercise and detailed README documentation for guidance.
This commit is contained in:
38
08-vue3/13-script-setup-macros/starter.vue
Normal file
38
08-vue3/13-script-setup-macros/starter.vue
Normal file
@@ -0,0 +1,38 @@
|
||||
<template>
|
||||
<article class="course-card">
|
||||
<h2>{{ title }}</h2>
|
||||
<p>{{ finished ? "已完成" : "学习中" }}</p>
|
||||
<button ref="actionButton" type="button" @click="handleToggle">
|
||||
切换状态
|
||||
</button>
|
||||
</article>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
|
||||
// 任务:
|
||||
// 1. 用 defineProps 定义 title 和 finished
|
||||
// 2. 用 defineEmits 定义 toggle
|
||||
// 3. 点击按钮时触发 toggle
|
||||
// 4. 用 defineExpose 暴露 focusAction
|
||||
|
||||
const actionButton = ref(null);
|
||||
|
||||
function handleToggle() {
|
||||
// 在这里触发 emit
|
||||
}
|
||||
|
||||
function focusAction() {
|
||||
actionButton.value?.focus();
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.course-card {
|
||||
padding: 18px;
|
||||
border-radius: 16px;
|
||||
border: 1px solid #dbe4f1;
|
||||
background: #fbfcfe;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user