我有这些文件
App.vue、Header.vue、search.js 和 Search.vue
App.vue
是正常的,只是添加不同的视图
Header.vue
有一个输入框
<input type="text" v-model="searchPin" @keyup="searchResults" />
<div>{{searchPin}}</div>
和脚本:
import useSearch from "@/compositions/search";
export default {
name: "Header",
setup() {
const { searchPin, searchResults } = useSearch();
return {
searchPin,
searchResults
};
}
};
search.js
有可重用的代码
import { ref } from "vue";
export default function useSearch() {
const searchPin = ref("");
function searchResults() {
return searchPin.value;
}
return {
searchPin,
searchResults
};
}
现在,这运行良好.. 在输入框中添加内容后,它会显示在下面的 div 中。
我不明白的是如何将此代码用于像 Search.vue 这样的第三个组件。
我有这个,但它不起作用。
<template>
<div>
<h1 class="mt-3">Search</h1>
<div>{{ searchPin }}</div>
</div>
</template>
<script>
import useSearch from "@/compositions/search";
export default {
name: "Search",
setup() {
const { searchPin, searchResults } = useSearch();
return {
searchPin,
searchResults
};
}
};
</script>
我错过了什么?谢谢。