老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Vue組件之極簡的地址選擇器的實現

一、前言

我們是2013年開創至今的成都網站建設公司,提供網站建設,電商網站設計開發,外貿網站建設,響應式網頁設計,重慶小程序開發、等服務。為客戶創造有價值的品牌營銷體驗,讓互聯網提升企業的競爭力!

本文用Vue完成一個極簡的地點選擇器,我們接下來帶大家實現這個。當然其中也有一些值得學習與注意的地方。話不多說,我們先上demo圖。因為每個人的需要不一樣,我這邊就不在實現更多的功能,所以留有更大的空間供大家增刪改。

Vue組件之極簡的地址選擇器的實現

GitHub地址:Vue-location_Select

二、需要學習的地方

(1)數據更新Vue無法監控

首先要說一下的就是這個點,我們在Vue中有個好處就是可以不用操作dom,直接操作數據。但是這其實也有Vue無法監控的數據。如數組和對象。當然這里只是指一小部分操作而已,大部分操作都是沒毛病的。接下來說說哪些數據操作Vue無法監控

1、數組

由于 JavaScript 的限制,Vue 不能檢測以下變動的數組:

  1. 當你利用索引直接設置一個項時,例如:vm.items[indexOfItem] = newValue
  2. 當你修改數組的長度時,例如:vm.items.length = newLength

意思就是下面的情況都不能監控到,因此這樣改變數組是不會刷新視圖的

var vm = new Vue({
 data: {
  items: ['a', 'b', 'c']
 }
})
vm.items[1] = 'x' // 不是響應性的,
vm.items.length = 2 // 不是響應性的

實際上要解決這兩者的方法也簡單:

//解決第一類問題

vm.$set(vm.items, indexOfItem, newValue)

//為了解決第二類問題,你可以使用 splice:

vm.items.splice(newLength)

這樣就可以使得Vue監控到數組操作的變化。當然還有以下的操作Vue也可以監控到的

  1. push()
  2. pop()
  3. shift()
  4. unshift()
  5. splice()
  6. sort()
  7. reverse()

2.對象

由于 JavaScript 的限制,Vue不能檢測對象屬性的添加或刪除! 這個是重點,如果動態的添加對象屬性的話,那么請注意你添加對象屬性的方式是否為$set,不然的話視圖很有可能不更新。

var vm = new Vue({
 data: {
  userProfile: {
   name: 'Anika'
  }
 }
})

vm.userProfile.age = 27;  //看著沒問題,實際上Vue無法監控

因此解決辦法也是老辦法,用vm.$set(vm.userProfile, 'age', 27);

使用Object.assign()添加多個屬性也要注意一下用法

//錯誤
Object.assign(vm.userProfile, {
 age: 27,
 favoriteColor: 'Vue Green'
})

//正確
vm.userProfile = Object.assign({}, vm.userProfile, {
 age: 27,
 favoriteColor: 'Vue Green'
})

(2)V-for的用法

1.遍歷數組

這里直接擼碼,一看就懂

v-for = "(val,index) in arr" 
//得到的就是值和數組下標

//習慣性用法

2.遍歷對象

v-for = "(val,key,index) in object" 
//得到的就是鍵值對還有下標

//習慣性用法

CSS3樣式

當然這里就不多說了。這個直接給出傳送門:css3用scale實現下劃線動畫

實現極簡地點選擇

這里就放主要的代碼吧,雖然總代碼也不多

html部分

{{value}}

js

methods:{
  getData(){
    let xhr = new XMLHttpRequest();           //原生ajax
    xhr.open('get','http://127.0.0.1:3001/read');    //請求mock
    xhr.send();
    xhr.onreadystatechange = ()=> {
      if (xhr.readyState === 4 && xhr.status === 200) {
        let locationN = JSON.parse(xhr.responseText);    //獲取數據,地點json
        for (let key of Object.keys(locationN)) {      //遍歷取出數據,取得鍵值
          for(let key2 of Object.keys(this.locationName)){    //遍歷data中locationName,為了分類
            let pattern = new RegExp("["+key2.toString()+"]");   
            if(pattern.test(key)){               //正則匹配,如果找到就進入對應的分類對象中
              
              //判斷該類中是否存在該字母這地名集合,如A,B,C
              if (Array.isArray(this.locationName[key2][key.charAt(0)])) {
                //如果存在則直接推入地名
                this.locationName[key2][key.charAt(0)].push(locationN[key]);
                
                //沒有則先創建再推入地名
              } else {
                this.$set(this.locationName[key2],key.charAt(0),[]);
                this.locationName[key2][key.charAt(0)].push(locationN[key]);
              }
              break;
            }
          }
        }
      }
    }
  },
}

后話

到這里,我們就已經實現了該Vue組件,如果想細看代碼或者使用的話,請點擊Vue-location_Select,當然如果喜歡就不要吝嗇你的star哦!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。


標題名稱:Vue組件之極簡的地址選擇器的實現
本文地址:http://www.xueling.net.cn/article/jgehpg.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产成人免费视频网站视频社区 | 欧美日韩资源 | 视频一区二区三区在线 | 国产日皮视频 | 毛片欧美 | 国产a一级毛片爽爽影院 | a视频在线免费看 | 人妻少妇看a片偷人精品视频 | 狂野欧美激情性XXXX按摩 | 亚洲W欧洲无码SSS222 | 成人免费a级毛片无码片在线播放 | 亚洲视频在线观看视频 | 欧美日韩国产这里只有精品 | 亚洲ΑV无码一区二区三区四区 | 五月婷久久综合狠狠爱97 | 少妇人妻偷人精品免费视频 | 成人区一区二区三区 | 中文日产幕无限码一区 | 饥渴丰满少妇大力进入 | AV无码久久久久不卡网站蜜桃 | 免费av一区二区三区无码 | 99精品小视频 | 欧美黄色一区二区三区 | 国产h视频在线观看播放 | 99九色| 免费无码午夜福利片69 | 97爱综合| 日本特大黄色片 | 无码欧美熟妇人妻影院 | 亚洲国产精品999久久久婷婷 | 久久久亚洲欧洲日产国码αv | 日韩欧美一区二区三区不学 | 乱色熟女综合一区二区三区 | 日韩人妻无码精品一专区二区三区 | 亚洲视频免费播放 | 成年女人免费视频播放人 | 青草视频在线观看国产 | 狠狠色噜噜狠狠狠狠2021 | 被夫上司強暴人妻中文字幕 | 日韩精品无码人成视频手机 | 国外免费WINDOWS |