vue中select的option默认选中项的问题解决方案

简介: vue中select的option默认选中项的问题解决方案

前言

首先和浏览到这篇文章的朋友问声好,我是刚进入前端没多久的一个小白,喜欢分享一下自己在工作中遇到的问题与信德,希望大家能够多多指点。

下面就言归正传了!

一、vue中select的option默认选中项的问题

vue中select的option默认选中项的解决,我遇到的问题是,无法给option设置默认值,百度了一番各种大神的解决方案始终无效!

       1、html代码如下,通过v-model可以获取到选中的值,如果option中存在value属性,优先获取value值即item.code,如果不存在,则获取option的文本内容,也就是下面代码中coupon.name.

首先说明,html这样写没有任何问题,动态的select的正确使用方法就是这样。

             但是我始终无法给option设置初始值。

  设置option默认值(失败代码示例):

<select class="select-language" name="" v-model="datas.selectLanguage">
  <option
     v-for="item in language"
     :key="item.code"
     :value="item.code"
     :label="item.enG_DESC"
     ></option>
</select>
   this.getLanguage(query).then((result) => {
      this.language = result.data.language;
      this.language.forEach((item) => {
        if (item.isdefault === 1) {
          this.datas.selectLanguage = item.code;
          return;
        }
      });
    });

二、解决方案

1.在mounted请求数据的方法中添加this.$nextTick()

代码如下(成功示例)

   this.getLanguage(query).then((result) => {
      this.language = result.data.language;
      this.language.forEach((item) => {
        if (item.isdefault === 1) {
          this.$nextTick(() => {//添加完以后
            this.datas.selectLanguage = item.code;
          });
          return;
        }
      });
    });

2.个人分析

1、当没有绑定v-model,直接给对应的option加selected属性,目前的这个小功能通过selected三目运算同样可以实现;


  2、当给select绑定了v-model的值的时候,要给v-model绑定的datas.selectdanguage值里写默认值;


因为我目前option遍历的数据是通过接口请求来的,所以使用以上的两种办法是有问题的,需要在请求数据的代码里加上 this.$nextTick(callback);为了在数据变化之后等待 Vue 完成更新 DOM,可以在数据变化之后立即使用  this.$nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用,并且回调函数中的 this 将自动绑定到当前的 Vue 实例上;

总结

以上就是我个人的一些简单总结;

曾参考大神Demo链接:https://blog.csdn.net/weixin_36810906/article/details/87877753

相关文章
|
6天前
|
JavaScript
vue消息订阅与发布
vue消息订阅与发布
|
2天前
|
JavaScript
理解 Vue 的 setup 应用程序钩子
【10月更文挑战第3天】`setup` 函数是 Vue 3 中的新组件选项,在组件创建前调用,作为初始化逻辑的入口。它接收 `props` 和 `context` 两个参数,内部定义的变量和函数需通过 `return` 暴露给模板。`props` 包含父组件传入的属性,`context` 包含组件上下文信息。`setup` 可替代 `beforeCreate` 和 `created` 钩子,并提供类似 `data`、`computed` 和 `methods` 的功能,支持逻辑复用和 TypeScript 类型定义。
20 11
|
5天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
14 4
|
5天前
|
JavaScript
vue尚品汇商城项目-day07【51.路由懒加载】
vue尚品汇商城项目-day07【51.路由懒加载】
15 4
|
5天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
14 2
|
7天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
6天前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
6天前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
|
6天前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
6天前
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
下一篇
无影云桌面