vue-cli3采坑記

出現(xiàn)狀況

? 一開(kāi)始油啤,在vue-cli3中我通過(guò)axios獲取了后臺(tái)數(shù)據(jù)并推到了data里面的mapdata數(shù)據(jù)內(nèi)典徘。然后想通過(guò)調(diào)取高德的API進(jìn)行地圖的繪制,但是我發(fā)現(xiàn)無(wú)論如何取不到mapdata的數(shù)據(jù)益咬。以下我貼一下源代碼

export default {
  name: 'map',
  data () {
    return {
        mapdata: []
    }
  },
  mounted(){
    this.axios.get('url')
    .then(response => {
        // this.mapdata = response.data.data;
        for(var i=0; i<response.data.data.length; i++)
        {
            this.mapdata.push({
                'name': response.data.data[i].name,
                'center': response.data.data[i].location
            });
        }
        console.log(this.map);
    })
    .catch(function (error) {
      console.log(error)
    })
    this.create();
  },
  methods: {
    createmap()
      {
          var map = new AMap.Map('map', {
            resizeEnable: true, //是否監(jiān)控地圖容器尺寸變化
            mapStyle: 'amap://styles/grey',
            zoom: 13,
            features: ['bg', 'road', 'building', 'point'],
            viewMode: '3D',
            center: [106.515301,29.510008]
            });
          var layer = new Loca.PointLayer({
            map: map,
            eventSupport: true,    // selectStyle 配置需要開(kāi)啟 eventSupport: true
            });
          var data = this.mapdata;
          layer.setData(data, {
            lnglat: 'center'
            });
          layer.render();
      }
    }
  }

然后我分別打印了一下mouted和methods里面的mapdata數(shù)據(jù)逮诲,我發(fā)現(xiàn)在mouted中出現(xiàn)的是[ {}, {}, {},{} _ob_ observe] 數(shù)據(jù)特征,而在methods中打印的數(shù)據(jù)直接就為[ _ob_ observe] 幽告。

解決方法

一開(kāi)始我在官方文檔里面進(jìn)行查詢梅鹦,讓我發(fā)現(xiàn)貌似這樣可以。


官方文檔

然后在methods里面修改成了如下所示:

var data = JSON.parse(JSON.stringify(this.mapdata));

然而并沒(méi)有起什么作用冗锁,但是問(wèn)題的關(guān)鍵來(lái)了齐唆,在mouted里面我也這樣對(duì)mapdata進(jìn)行了處理。打印出來(lái)發(fā)現(xiàn)把后面的observe對(duì)象消除了冻河,此時(shí)我便想箍邮,會(huì)不會(huì)是位置不對(duì)茉帅。然后我修改了代碼

export default {
  name: 'map',
  data () {
    return {
        mapdata: []
    }
  },
  mounted(){
    this.axios.get('url')
    .then(response => {
        // this.mapdata = response.data.data;
        for(var i=0; i<response.data.data.length; i++)
        {
            this.mapdata.push({
                'name': response.data.data[i].name,
                'center': response.data.data[i].location
            });
        }
        var map = new AMap.Map('map', {
            resizeEnable: true, //是否監(jiān)控地圖容器尺寸變化
            mapStyle: 'amap://styles/grey',
            zoom: 13,
            features: ['bg', 'road', 'building', 'point'],
            viewMode: '3D',
            center: [106.515301,29.510008]
            });
          var layer = new Loca.PointLayer({
            map: map,
            eventSupport: true,    // selectStyle 配置需要開(kāi)啟 eventSupport: true
            });
          var data = JSON.parse(JSON.stringify(this.mapdata));
          layer.setData(data, {
            lnglat: 'center'
            });
          layer.render();
    })
    .catch(function (error) {
      console.log(error)
    })
  },
  methods: {
    }
  }

最后發(fā)現(xiàn)這樣竟然成功了!6П住堪澎!

原因

在后面,我去查了下observe的具體詳情

observe是作為數(shù)據(jù)的的觀察者所擁有的味滞,同理還有如下兩個(gè)

  • Observer: 數(shù)據(jù)的觀察者全封,讓數(shù)據(jù)對(duì)象的讀寫(xiě)操作都處于自己的監(jiān)管之下
  • Watcher: 數(shù)據(jù)的訂閱者,數(shù)據(jù)的變化會(huì)通知到Watcher桃犬,然后由Watcher進(jìn)行相應(yīng)的操作刹悴,例如更新視圖
  • Dep: Observer與Watcher的紐帶,當(dāng)數(shù)據(jù)變化時(shí)攒暇,會(huì)被Observer觀察到土匀,然后由Dep通知到Watcher

而observe則檢查對(duì)象上是否有_ob_d屬性,如果存在形用,則表明該對(duì)象已經(jīng)處于Observer的觀察中就轧,如果不存在,則new Observer來(lái)觀察對(duì)象田度。如果我們要寫(xiě)到methods里面的方法中妒御,再由mouted去調(diào)用它則進(jìn)行了兩次觀察。它會(huì)直接封閉這個(gè)數(shù)據(jù)導(dǎo)致我們只能看镇饺。因此乎莉,我們最好就是調(diào)用data里面數(shù)據(jù)后立即使用它,否則會(huì)出現(xiàn)意想不到的情況

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奸笤,一起剝皮案震驚了整個(gè)濱河市惋啃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌监右,老刑警劉巖边灭,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異健盒,居然都是意外死亡绒瘦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)扣癣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惰帽,“玉大人,你說(shuō)我怎么就攤上這事搏色∩凭ィ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵频轿,是天一觀的道長(zhǎng)垂涯。 經(jīng)常有香客問(wèn)我烁焙,道長(zhǎng),這世上最難降的妖魔是什么耕赘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任骄蝇,我火速辦了婚禮,結(jié)果婚禮上操骡,老公的妹妹穿的比我還像新娘九火。我一直安慰自己,他們只是感情好册招,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布岔激。 她就那樣靜靜地躺著,像睡著了一般是掰。 火紅的嫁衣襯著肌膚如雪虑鼎。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天键痛,我揣著相機(jī)與錄音炫彩,去河邊找鬼。 笑死絮短,一個(gè)胖子當(dāng)著我的面吹牛江兢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丁频,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼杉允,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了限府?” 一聲冷哼從身側(cè)響起夺颤,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胁勺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體独旷,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡署穗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嵌洼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片案疲。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖麻养,靈堂內(nèi)的尸體忽然破棺而出褐啡,到底是詐尸還是另有隱情,我是刑警寧澤鳖昌,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布备畦,位于F島的核電站低飒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏懂盐。R本人自食惡果不足惜褥赊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望莉恼。 院中可真熱鬧拌喉,春花似錦、人聲如沸俐银。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捶惜。三九已至田藐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間售躁,已是汗流浹背坞淮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陪捷,地道東北人回窘。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像市袖,于是被迫代替她去往敵國(guó)和親啡直。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容