vue3简单封装一个下拉框选项组件
2023-09-11 14:16:33 时间
vue3简单封装一个下拉框选项组件
组件
<!-- 这个为选择通知类型的下拉选组件 -->
<template>
<el-select v-model="value" filterable placeholder="选择类型" clearable>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</template>
<script setup>
import baseService from "@/service/baseService";
import { onMounted, ref } from "vue";
const value = ref("");
const options = ref([]);
onMounted(() => {
baseService.get("xxxxxxxxxxx").then((res) => {
res.data.map((vo) => {
options.value.push({
key: vo.id,
label: vo.typeName,
value: vo.id
});
});
console.log("访问的接口为:xxxxxxxxxxxxx");
});
});
</script>
应用
script
<script lang="ts">
import useView from "@/hooks/useView";
import { defineComponent, reactive, toRefs } from "vue";
import noticeTypeSelect from "@/views/dcomponents/noticeTypeSelect.vue";
export default defineComponent({
components: {
noticeTypeSelect
},
setup() {
const state = reactive({
dataForm: {
typeId: ""
}
});
return { ...useView(state), ...toRefs(state) };
},
});
</script>
div
<notice-type-select v-model="dataForm.typeId"></notice-type-select>
完整代码
<template>
<notice-type-select v-model="dataForm.typeId"></notice-type-select>
</template>
<script lang="ts">
import useView from "@/hooks/useView";
import { defineComponent, reactive, toRefs } from "vue";
import noticeTypeSelect from "@/views/dcomponents/noticeTypeSelect.vue";
export default defineComponent({
components: {
noticeTypeSelect
},
setup() {
const state = reactive({
dataForm: {
typeId: ""
}
});
return { ...useView(state), ...toRefs(state) };
},
});
</script>
相关文章
- vue3:vue+nginx+php进行服务端部署的配置(nginx/1.18.0 / vue@3.2.37)
- vue.js3.x 使用vue3-count-to 组件(到可视区域才start数字滚动 vue@3.2.33 / vue3-count-to@1.1.2)
- 初始化创建安装 vue3工程项目的3种方法!超详细
- vue3 - import js文件eslint报错-解决
- vue3 watch 监听 flush post 作用?
- vue3如何获取绑定在组件上的 textarea DOM元素
- vite + vue3 项目中引入文件路由
- Vue3学习笔记(三)——模板语法、Class 与 Style 、ES6新增数组方法、UI库介绍
- Vue3带来了什么
- vue2.x与vue3.x中自定义指令详解
- Vue3实现滚动加载动画效果