vue類名綁定bug

想實(shí)現(xiàn)一個(gè)展開單選組件


未標(biāo)題-1.jpg

選擇不同項(xiàng)時(shí)更改列表項(xiàng)排列
于是我很快寫了一個(gè)組件

<template>
  <div>
    <span class="expand-select-list">
      <label style="color: #999;float: left;margin: 6px 10px 0 0;">{{title}}</label>
      <ul class="bi-nav-pills">
        <li
          v-for="(item,index) in selectTypes"
          :key="index"
          v-bind:class="{active: item.value==optionValue}"
          v-on:click="onSelect(item)"
        >{{item.name}}</li>
      </ul>
    </span>
  </div>
</template>
<script>
export default {
  data() {
    return {
    };
  },
  props: ["title","selectTypes"],
  methods: {
    onSelect(item) {
      this.optionValue = item.value;
      this.$emit("change:type", item.value);
    }
  },
  mounted(){
    this.optionValue=this.selectTypes[0].value
  }
}
</script>

title 該組件的名稱 selectTypes 選擇的每一項(xiàng)畴蒲。
當(dāng)我測(cè)試點(diǎn)擊的時(shí)候 發(fā)現(xiàn)active類沒(méi)有發(fā)生綁定笤闯。

開始找原因

  • f12看頁(yè)面發(fā)現(xiàn)dom也沒(méi)有掛載這個(gè)類名懈词。
    active類是公共樣式里的類名,會(huì)不會(huì)不能在我這個(gè)組件引用。
    于是我改成
 v-bind:class="active"

這下綁定了,說(shuō)明我的類名沒(méi)問(wèn)題

  • 這里出了問(wèn)題 點(diǎn)擊事件引起this.optionValue = item.value;
    duggber后發(fā)現(xiàn)數(shù)據(jù)改變了粱哼,數(shù)據(jù)是沒(méi)問(wèn)題的,但是頁(yè)面沒(méi)更新檩咱。
  • 直到看到控制臺(tái)的警告
    hhh.png

    -------天哪這里的optionValue不是響應(yīng)式綁定的揭措,沒(méi)有添加進(jìn)data里胯舷,數(shù)據(jù)是改變了,但Vue根本不會(huì)理你绊含。
    看這張圖
    68747470733a2f2f636e2e7675656a732e6f72672f696d616765732f646174612e706e67.png

看了染陌大神的learnVue

我的理解就是
1.因?yàn)関ue沒(méi)有把數(shù)據(jù)optionValue添加進(jìn)一開始響應(yīng)式綁定里桑嘶,沒(méi)有對(duì)getter,setter重寫
2.更不會(huì)在渲染的時(shí)候收集render里的數(shù)據(jù)添加進(jìn)deps依賴收集容器里躬充。
3.數(shù)據(jù)改變不會(huì)觸發(fā)setter逃顶,數(shù)據(jù)option Value自己watch不到自己的改變,不會(huì)notify到充甚,不會(huì)觸發(fā)自己的updata以政,沒(méi)有相應(yīng)的回調(diào)通知組件重新渲染的函數(shù)。

關(guān)于vue的wanning

1.在vue的生命周期created的時(shí)候會(huì)完成數(shù)據(jù)的裝載伴找。vue實(shí)例的數(shù)據(jù)對(duì)象data有了盈蛮,$el還沒(méi)有。
2.在beforemounted會(huì)首次調(diào)用render方法技矮,解析template模板抖誉。渲染的時(shí)候發(fā)現(xiàn)沒(méi)有optionValue發(fā)出警告。
3.數(shù)據(jù)視圖都準(zhǔn)備好組件開始掛載衰倦,mounted掛載好在vue data之外的數(shù)據(jù)不會(huì)添加進(jìn)響應(yīng)式綁定中寸五,所以視圖不會(huì)改變。

  • 這時(shí)應(yīng)該這樣修改
data() {
    return {
     optionValue:this.selectTypes[0].value
    };
  },

附上vue生命周期圖

lifecycle.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耿币,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子韧拒,更是在濱河造成了極大的恐慌淹接,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叛溢,死亡現(xiàn)場(chǎng)離奇詭異塑悼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)楷掉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門厢蒜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人烹植,你說(shuō)我怎么就攤上這事斑鸦。” “怎么了草雕?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵巷屿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我墩虹,道長(zhǎng)嘱巾,這世上最難降的妖魔是什么憨琳? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮旬昭,結(jié)果婚禮上篙螟,老公的妹妹穿的比我還像新娘。我一直安慰自己问拘,他們只是感情好遍略,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著场梆,像睡著了一般墅冷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上或油,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天寞忿,我揣著相機(jī)與錄音,去河邊找鬼顶岸。 笑死腔彰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辖佣。 我是一名探鬼主播霹抛,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼卷谈!你這毒婦竟也來(lái)了杯拐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤世蔗,失蹤者是張志新(化名)和其女友劉穎端逼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體污淋,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顶滩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寸爆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礁鲁。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赁豆,靈堂內(nèi)的尸體忽然破棺而出仅醇,到底是詐尸還是另有隱情,我是刑警寧澤歌憨,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布着憨,位于F島的核電站,受9級(jí)特大地震影響务嫡,放射性物質(zhì)發(fā)生泄漏甲抖。R本人自食惡果不足惜漆改,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望准谚。 院中可真熱鬧挫剑,春花似錦、人聲如沸柱衔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)唆铐。三九已至哲戚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間艾岂,已是汗流浹背顺少。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留王浴,地道東北人脆炎。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像氓辣,于是被迫代替她去往敵國(guó)和親秒裕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • vue概述 在官方文檔中钞啸,有一句話對(duì)Vue的定位說(shuō)的很明確:Vue.js 的核心是一個(gè)允許采用簡(jiǎn)潔的模板語(yǔ)法來(lái)聲明...
    li4065閱讀 7,221評(píng)論 0 25
  • 一几蜻、了解Vue.js 1.1.1 Vue.js是什么? 簡(jiǎn)單小巧体斩、漸進(jìn)式入蛆、功能強(qiáng)大的技術(shù)棧 1.1.2 為什么學(xué)習(xí)...
    蔡華鵬閱讀 3,324評(píng)論 0 3
  • 基于Vue的一些資料 內(nèi)容 UI組件 開發(fā)框架 實(shí)用庫(kù) 服務(wù)端 輔助工具 應(yīng)用實(shí)例 Demo示例 element★...
    嘗了又嘗閱讀 1,154評(píng)論 0 1
  • 主要還是自己看的,所有內(nèi)容來(lái)自官方文檔硕勿。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,353評(píng)論 0 25
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,214評(píng)論 0 6