Vue筆記四:vuex和vue-router全家桶

除了在組件式方面vue和react有異曲同工之妙之外,vuex和redux也非常像洋闽,vue進(jìn)入2.0版本,還得到了兩個(gè)好聽的名字“漸進(jìn)式框架”和“自底向上增量開發(fā)的設(shè)計(jì)”财岔,參考詳情吞杭。

其實(shí),我在學(xué)習(xí)vue之前锋勺,學(xué)習(xí)了react蚀瘸。但是react有很多內(nèi)容相對(duì)還是復(fù)雜。JSX是非常JS的思路庶橱,但是html和js混寫總是非常奇怪贮勃,需要很長(zhǎng)時(shí)間去習(xí)慣。redux應(yīng)該是react的一個(gè)附屬品苏章,也是必學(xué)的寂嘉。但是它相對(duì)復(fù)雜,學(xué)習(xí)成本較高枫绅。但是我學(xué)習(xí)了vuex后泉孩,去理解redux變的相對(duì)簡(jiǎn)單。這可能就是vue的“漸進(jìn)式”設(shè)計(jì)并淋。

框架 React Vue
路由 react-router vue-router
數(shù)據(jù) redux vuex

vuex

要學(xué)習(xí)好vuex寓搬,必須掌握關(guān)鍵詞:state,getters县耽,actions句喷,mutations,store兔毙。詳情參考官方教程唾琼,不再贅述。

  • state為狀態(tài)的參數(shù)瞒御。

  • getters為獲取器父叙,用于過濾的方法獲取參數(shù)。

  • mutations是改變狀態(tài)參數(shù)的函數(shù)肴裙,但是不能直接被調(diào)用趾唱,需要對(duì)應(yīng)的store.commit(可以額外傳參數(shù))。

  • actions不是直接修改狀態(tài)蜻懦,而是基于mutations甜癞,可以執(zhí)行異步處理

  • store更像一個(gè)容器,裝著以上的所有函數(shù)和參數(shù)宛乃,最后需要注入到Vue的實(shí)例當(dāng)中悠咱。

2.0 特性--輔助函數(shù)

輔助函數(shù)j就是可用可不用蒸辆。如果你用了,它就會(huì)提高代碼編寫效率的析既。

  • mapState
  • mapGetter
  • mapMutation

舉個(gè)例子躬贡,如果不用輔助函數(shù)mapState

computed: {
    count () {
      return this.$store.state.count
    }
  }

使用輔助函數(shù)mapState眼坏,

computed: mapState([
  // 映射 this.count 為 store.state.count
  'count'
])

如果不用輔助函數(shù)mapGetter拂玻,

computed: {
  doneTodosCount () {
    return this.$store.getters.doneTodosCount
  }
}

使用輔助函數(shù)mapGetter

computed: {
  // 使用對(duì)象展開運(yùn)算符將 getters 混入 computed 對(duì)象中
    ...mapGetters([
      'doneTodosCount',
      'anotherGetter',
    ])
  }

如果不用輔助函數(shù)mapMutation宰译,

  methods: {
    increment(){
        this.$store.commit('increment')
    },
}

使用輔助函數(shù)mapMutation檐蚜,

methods: {
    ...mapMutations([
      'increment',
     ]),
}

如果不用輔助函數(shù)mapActions

  methods: {
    increment(){
        this.$store.dispatch('increment')
    },
}

使用輔助函數(shù)mapActions沿侈,

methods: {
    ... mapActions([
      'increment',
     ]),
}

vue-rounter

vue-router的出現(xiàn)不是個(gè)意外闯第,也不是讓你將所有的路由都裝在vue-router。它更多是用于SPA缀拭,把一些動(dòng)態(tài)的內(nèi)容提取出來咳短。例如動(dòng)態(tài)路由。詳情請(qǐng)參考官網(wǎng)

const User = {
  template: '<div>User</div>'
}

const router = new VueRouter({
  routes: [
    // 動(dòng)態(tài)路徑參數(shù) 以冒號(hào)開頭
    { path: '/user/:id', component: User }
  ]
})

路由可以針對(duì)組件User分配id智厌,js端也可以獲取路由的參數(shù)诲泌。

const User = {
  template: '<div>User {{ $route.params.id }}</div>'
}

關(guān)于懶加載

懶加載的功能并非vue特有,而是webpack特有的铣鹏,有幾種特殊的寫法敷扫。

const Foo = resolve => {
  // require.ensure 是 Webpack 的特殊語(yǔ)法,用來設(shè)置 code-split point
  // (代碼分塊)
  require.ensure(['./Foo.vue'], () => {
    resolve(require('./Foo.vue'))
  })
}

也可以簡(jiǎn)寫為

const Foo = resolve => require(['./Foo.vue'], resolve)

懶加載會(huì)獨(dú)立分包诚卸,把對(duì)應(yīng)的組件獨(dú)立打包葵第。而懶加載組件的css將不會(huì)進(jìn)行提取。但是會(huì)對(duì)route-view級(jí)別的css進(jìn)行打包合溺,因此建議將共有的css放在route-view級(jí)別卒密。

轉(zhuǎn)載,請(qǐng)表明出處棠赛。總目錄前段收集器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哮奇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子睛约,更是在濱河造成了極大的恐慌鼎俘,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辩涝,死亡現(xiàn)場(chǎng)離奇詭異贸伐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怔揩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門捉邢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脯丝,“玉大人,你說我怎么就攤上這事伏伐〕杞” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵藐翎,是天一觀的道長(zhǎng)砰苍。 經(jīng)常有香客問我,道長(zhǎng)阱高,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任茬缩,我火速辦了婚禮赤惊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凰锡。我一直安慰自己未舟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布掂为。 她就那樣靜靜地躺著裕膀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勇哗。 梳的紋絲不亂的頭發(fā)上昼扛,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音欲诺,去河邊找鬼抄谐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扰法,可吹牛的內(nèi)容都是我干的蛹含。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼塞颁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼浦箱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祠锣,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤酷窥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锤岸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竖幔,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年是偷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拳氢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片募逞。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖馋评,靈堂內(nèi)的尸體忽然破棺而出放接,到底是詐尸還是另有隱情,我是刑警寧澤留特,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布纠脾,位于F島的核電站,受9級(jí)特大地震影響蜕青,放射性物質(zhì)發(fā)生泄漏苟蹈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一右核、第九天 我趴在偏房一處隱蔽的房頂上張望慧脱。 院中可真熱鬧,春花似錦贺喝、人聲如沸菱鸥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)氮采。三九已至,卻和暖如春染苛,著一層夾襖步出監(jiān)牢的瞬間鹊漠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工殖侵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贸呢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓拢军,卻偏偏與公主長(zhǎng)得像楞陷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茉唉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • Vue也已經(jīng)升級(jí)到2.0版本了固蛾,到現(xiàn)在為止(2016/11/19)比較流行的MVVM框架有AngularJS(也有...
    彬_仔閱讀 27,228評(píng)論 12 114
  • 來源:github.com Vue.js開源項(xiàng)目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei閱讀 11,626評(píng)論 1 159
  • vuex是什么鬼? 如果你用過redux就能很快的理解vuex是個(gè)什么鬼東西了度陆。他是vuejs用來管理狀態(tài)的插件艾凯。...
    麥子_FE閱讀 6,870評(píng)論 3 37
  • 今天是第一天的原地跑步計(jì)劃的實(shí)施日。以后每天記錄一下懂傀。 今天跑了約60分鐘趾诗,跑步時(shí)看了一部連姆·尼森主演的電影《急...
    諸葛兔閱讀 125評(píng)論 0 1
  • 眾所周知,視覺元素在網(wǎng)頁(yè)信息中扮演了舉足輕重的角色,無(wú)論是更新社交媒體上信息恃泪、還是發(fā)博客郑兴、寫電子書或者在線制作幻燈...
    老王的餅店閱讀 618評(píng)論 0 3