最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中如何使用Map鍵值對(duì)傳參詳析

 更新時(shí)間:2022年08月03日 15:30:16   作者:I'm寫(xiě)代碼  
最近在做一個(gè)vue的項(xiàng)目,碰到一點(diǎn)關(guān)于Map鍵值對(duì)傳參的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Vue中如何使用Map鍵值對(duì)傳參的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

Vue里使用Map鍵值對(duì)傳參

問(wèn)題描述:在參數(shù)傳遞時(shí)時(shí)候Map鍵值對(duì)key:value的形式進(jìn)行傳參。

1、date數(shù)據(jù)區(qū)定義聲明map變量和中間數(shù)據(jù)變量temp:

data(){
     return{
          //其他代碼
           map:'',
           temp:[]
            }
        },

2、methods方法區(qū)接口傳值:聲明map為Map變量,接收接口傳過(guò)來(lái)的key數(shù)據(jù)生成表單項(xiàng)數(shù)據(jù)項(xiàng):

this.map=new Map()

即:

//點(diǎn)擊待辦任務(wù),去處理待辦任務(wù) 填寫(xiě)待辦表單
            goDealTaskShow(index){
                this.$fetchPost('你的接口',{taskID:this.taskForm.taskId}).then(res=>{
                    this.getTaskForm = res.data;
                    this.map = new Map()
                    for (var i=0;i<this.getTaskForm.length;i++){
                        this.map.set(this.getTaskForm[i].fieldName,'');
                    }
                    console.log(this.getTaskForm,'集合集合')
                    console.log(this.map,'map集合')
                })     
                 this.taskNameList.push(this.$refs.taskName[index].innerHTML)
               this.taskIdList.push(this.$refs.taskId[index].innerHTML)
            },

3、form表單數(shù)據(jù)綁定,且根據(jù)for循環(huán)index值用temp數(shù)據(jù)進(jìn)行數(shù)據(jù)綁定。

<el-form-item v-for="(item,index) in map" :key="item[0]" :label="item[0]">
     <div class="dealTaskItem">
          <el-input @input="updateForce($event)"  v-model ="temp[index]" class="dateTaskCss" placeholder="請(qǐng)輸入" clearable @change="mapUpdate(item[0],index)"></el-input>
    </div>
</el-form-item>

4、mapUpdate方法將temp數(shù)組接收的值對(duì)Map進(jìn)行key:value傳值:

mapUpdate(key,index){
                this.map.set(key,this.temp[index]);
                console.log(key)
                console.log(this.map)
            }

5、mapToJson方法對(duì)map進(jìn)行json數(shù)據(jù)格式轉(zhuǎn)換:

mapToJson(map) {
        return JSON.stringify(this.strMapToObj(map));
    },

6、map數(shù)據(jù)賦值給接口參數(shù),進(jìn)行傳參:

saveDealTaskForm(){
                this.$forceUpdate();
                this.saveTaskForm.result=this.mapToJson(this.map);
                console.log( this.mapToJson(this.map),' mapToJson(this.map)')
               
                this.$fetchPost('你的接口',this.saveTaskForm,'json').then(res=>{
                    if (res.code===0){
                        this.$message({
                            message:res.data,
                            type:'success',
                        })
                        this.initEvents();//數(shù)據(jù)刷新
                    }else{
                        this.$message.error("處理失敗!")
                    }
                })
                this.dealTaskVisible = false;//關(guān)閉表單彈窗
            },

搞定,嘻嘻!

補(bǔ)充:vue遍歷Map,Map在vue中的使用方法

Map在vue中的使用方法:

html:遍歷的時(shí)候要遍歷兩遍

<template>
  <div class="course">
       <div class="">
           <div class="pt0 ctRow">
                <ul class="ctNavbar">
                    <li class="ctA"
                        v-for="(item,index) in courseTypeList"
                        :key="item.id"
                        @click="selectedCur(index)" :class="{ cur:cur == index }"
                        :data-id="item.id"
                    >
                        {{item.courseTypeName}}
                    </li>
                </ul>
           </div>
           
           <!--Map遍歷兩遍 -->
            <div class="ctRow date_navbar">
                <a href="javascript:;"
                   v-for="(item,index) in dateMap"
                   :key="index"
                   @click="dataCur(index)" :class="{ cur:active == index }"
                >
                    <span  v-for="data in item">{{data}}</span>
                </a>
            </div>
       </div>
  </div>
</template>

js:

  data(){
            return{
             	cur: "0",
                active:"0",
                courseTypeList: [],
                dateMap:{},
            }
        },
 mounted(){
  		// 后端返回json
          var jsonStr ={
			    "code": 0,
			    "msg": "success",
			    "data": {
			        "courseTypeList": [
			            {
			                "id": "16",
			                "courseTypeName": "小一班"
			            },
			            {
			                "id": "15",
			                "courseTypeName": "中一班"
			            },
			            {
			                "id": "14",
			                "courseTypeName": "大一班"
			            }
			        ],
			        "dateKeys": [
			            "二·11.26",
			            "三·11.27",
			            "四·11.28",
			            "五·11.29",
			            "六·11.30",
			            "日·12.01",
			            "一·12.02"
			        ]
			    }
			}
            // 遍歷班級(jí)類型
            for (var i = 0; i < jsonStr.data.courseTypeList.length; i++) {
                var courseTypeList = jsonStr.data.courseTypeList[i];
                this.courseTypeList.push(courseTypeList)
            }

            // 遍歷日期
            //初始化Map對(duì)象
            var dateMap = new Map();
            for (var i = 0; i < jsonStr.data.dateKeys.length; i++) {
                var data = jsonStr.data.dateKeys[i];
                	//用split連在一起的字符串切割 "三·11.27"
                   //使用set添加鍵值示例:m.set('小紅', 30);
                dateMap.set(data.split("·")[0], data.split("·")[1]);
            }
            this.dateMap = dateMap;
        },

css:

  .ctNavbar{
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: center;
        .ctA{
            padding: 10px 0;
            color: #202020;
            font-size: 1.5rem !important;
            border-bottom: 2px solid transparent;
            width: 33%;
            &.cur{
                color: #BA0932;
                border-bottom: 2px solid #BA0932;
            }
        }
    }
       .date_navbar {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        a {
            width: 32px;
            -webkit-box-flex: 1;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-direction: column;
            font-size: 9px;
            color: #6C6C6C;
            padding: 2px 5px;
            flex: 1;
            span {
                display: block;
                -webkit-box-flex: 1;
            }
            &.cur {
                background: #BA0932;
                color: #fff;
                border-radius: 16px;
            }
        }
    }

總結(jié)

到此這篇關(guān)于Vue中如何使用Map鍵值對(duì)傳參的文章就介紹到這了,更多相關(guān)Vue用Map鍵值對(duì)傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue實(shí)現(xiàn)全屏滾動(dòng)效果(非fullpage.js)

    vue實(shí)現(xiàn)全屏滾動(dòng)效果(非fullpage.js)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)全屏滾動(dòng)效果,非fullpage.js,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • vue項(xiàng)目中使用this.$confirm解析

    vue項(xiàng)目中使用this.$confirm解析

    這篇文章主要介紹了vue項(xiàng)目中使用this.$confirm方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue中響應(yīng)式布局如何將字體大小改成自適應(yīng)

    vue中響應(yīng)式布局如何將字體大小改成自適應(yīng)

    這篇文章主要介紹了vue中響應(yīng)式布局如何將字體大小改成自適應(yīng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 詳解vue-router 命名路由和命名視圖

    詳解vue-router 命名路由和命名視圖

    這篇文章主要介紹了詳解vue-router 命名路由和命名視圖,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • node.js開(kāi)發(fā)輔助工具nodemon安裝與配置詳解

    node.js開(kāi)發(fā)輔助工具nodemon安裝與配置詳解

    node.js代碼修改后,需要重新啟動(dòng) Express 應(yīng)用,所做的修改才能生效。若之后的每次代碼修改都要重復(fù)這樣的操作,勢(shì)必會(huì)影響開(kāi)發(fā)效率,本文將詳細(xì)介紹Nodemon,它會(huì)監(jiān)測(cè)項(xiàng)目中的所有文件,一旦發(fā)現(xiàn)文件有改動(dòng),Nodemon 會(huì)自動(dòng)重啟應(yīng)用
    2020-02-02
  • vue中多個(gè)倒計(jì)時(shí)實(shí)現(xiàn)代碼實(shí)例

    vue中多個(gè)倒計(jì)時(shí)實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了vue中多個(gè)倒計(jì)時(shí)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue實(shí)現(xiàn)滾動(dòng)加載的表格

    vue實(shí)現(xiàn)滾動(dòng)加載的表格

    在系統(tǒng)開(kāi)發(fā)中遇到了這么一個(gè)問(wèn)題:后端一次性返回上百條的數(shù)據(jù),我需要把返回的數(shù)據(jù)全部顯示在表格里,而且甲方爸爸明確指定了表格是不允許使用分頁(yè)的??墒钱?dāng)使用a-table裝載上百條數(shù)據(jù)時(shí),頁(yè)面出現(xiàn)了明顯的卡頓現(xiàn)象。只能使用滾動(dòng)加載的方案來(lái)代替了。
    2021-06-06
  • Vue3路由配置createRouter、createWebHistory、useRouter和useRoute詳解

    Vue3路由配置createRouter、createWebHistory、useRouter和useRoute詳解

    Vue3和Vue2基本差不多,只不過(guò)需要將createRouter、createWebHistory從vue-router中引入,再進(jìn)行使用,下面這篇文章主要給大家介紹了關(guān)于Vue3路由配置createRouter、createWebHistory、useRouter和useRoute的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • vue單頁(yè)面SEO優(yōu)化的實(shí)現(xiàn)

    vue單頁(yè)面SEO優(yōu)化的實(shí)現(xiàn)

    本文主要介紹了vue單頁(yè)面SEO優(yōu)化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue實(shí)現(xiàn)可增刪查改的成績(jī)單

    vue實(shí)現(xiàn)可增刪查改的成績(jī)單

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)可增刪查改的成績(jī)單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論

同仁县| 普宁市| 美姑县| 南阳市| 河源市| 南昌市| 平塘县| 金溪县| 高要市| 土默特左旗| 京山县| 浙江省| 广东省| 阜城县| 大竹县| 吴桥县| 行唐县| 台前县| 思南县| 民和| 新宾| 绥棱县| 当阳市| 增城市| 郴州市| 岗巴县| 太谷县| 全南县| 汉川市| 贵港市| 宝清县| 都匀市| 道孚县| 从化市| 洮南市| 浪卡子县| 兰溪市| 东安县| 监利县| 康马县| 万安县|