Vue写一个简单的下拉选项框

使用vue协议个简单的下拉选项框,通过响应式数据可以动态绑定选项框数据。

将数据放在一个数组中以对象的形式存储,option中使用v-for遍历数据,拿出需要的值就可以了。

下面以一个名称和链接举例子,拿出连接后可以直接绑定在标签属性中使用。因为只能引用data中的数据,所以还是要将select选中的数据于data中的变量绑定。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        <p><a :href="sel.net" style="text-decoration: none;">{{sel.name}}</a></p><br>
        <select id="qq" v-model="sel" style="width: 100px;" >
            <option v-for="adr in adress" :value="adr">{{adr.name}}</option>
        </select>
        <p>你选择了:{{sel.net}}</p>
    </div>


    <script>
        const app = Vue.createApp({
            data() {
                return {
                    adress:[
                        {name:'百度',net:'http://www.baidu.com'},
                        {name:'菜鸟',net:'http://www.runoob.com'},
                        {name:'阿里',net:'http://www.ali.com'}
                    ],
                    sel:{name:'百度',net:'http://www.baidu.com'},
                    name1:''
                }
            },
            methods: {

            }
        })

        app.mount('#app')
    </script>
</body>
</html>

好的,下面是一个简单Vue 下拉选项组件示例: ```html <template> <div class="dropdown"> <div class="dropdown-toggle" @click="toggleDropdown"> {{ selectedOption.label }} <i class="icon-arrow-down"></i> </div> <ul class="dropdown-menu" v-show="isDropdownOpen"> <li v-for="option in options" :key="option.value" @click="selectOption(option)"> {{ option.label }} </li> </ul> </div> </template> <script> export default { props: { options: { type: Array, required: true }, value: { type: Object, required: true } }, data() { return { isDropdownOpen: false, selectedOption: this.value }; }, methods: { toggleDropdown() { this.isDropdownOpen = !this.isDropdownOpen; }, selectOption(option) { this.selectedOption = option; this.isDropdownOpen = false; this.$emit("input", option); } }, watch: { value(newValue) { this.selectedOption = newValue; } } }; </script> ``` 上面的代码中,我们定义了一个名为 `dropdown` 的组件,它接收两个属性:`options` 和 `value`。`options` 是一个包含选项的数组,每个选项都包含 `label` 和 `value` 两个属性。`value` 是组件内部选中的选项对象。 组件内部通过 `isDropdownOpen` 控制下拉是否打开,通过 `selectedOption` 控制当前选中的选项。当用户点击某个选项时,我们通过 `$emit` 事件将选项对象传递给父组件,并更新 `selectedOption` 和 `isDropdownOpen` 状态。 在父组件中,我们可以使用 `v-model` 指令来双向绑定选中的选项对象: ```html <template> <div> <dropdown :options="options" v-model="selectedOption" /> </div> </template> <script> import Dropdown from "@/components/Dropdown.vue"; export default { components: { Dropdown }, data() { return { options: [ { label: "Option 1", value: 1 }, { label: "Option 2", value: 2 }, { label: "Option 3", value: 3 } ], selectedOption: { label: "Option 1", value: 1 } }; } }; </script> ``` 这样就完成了一个简单Vue 下拉选项组件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生若梦777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值