以下是组件的基本结构:
<template>
<div>
<!-- 输入框,用于输入问题 -->
<p>
提出一个是/否问题:
<input v-model="question" :disabled="loading" />
</p>
<!-- 显示答案 -->
<p>{{ answer }}</p>
</div>
</template>
<script>
export default {
data() {
return {
question: '', // 问题
answer: '通常问题应该包含一个问号。 ', // 默认答案
loading: false // 加载状态
}
},
watch: {
// 监听 'question' 属性的变化
question(newQuestion) {
this.loading = true; // 开始加载
// 判断问题结尾是否包含问号
if (newQuestion.endsWith('?')) {
this.answer = '是/否问题,好问题!';
} else {
this.answer = '通常问题应该包含一个问号。';
}
this.loading = false; // 加载结束
}
}
}
</script>
v-model
指令绑定question
属性。watch
选项监听question
属性的变化,一旦问题发生变化,触发回调函数。endsWith('?')
方法判断问题是否以问号结尾。answer
的值,展示相应的答案。在Vue.js应用中,可以简单地将该组件引入,并在需要的地方使用。用户通过输入问题,即可即时获得动态判断的答案。
<template>
<div>
<DynamicQuestionComponent />
</div>
</template>
<script>
import DynamicQuestionComponent from './DynamicQuestionComponent.vue';
export default {
components: {
DynamicQuestionComponent,
},
}
</script>