Weex-hackernews之我見

Weex-hackernews是Weex項目里比較“先進”的demo酪劫。因為其是基于Vue開發(fā)的礁击,有完整清晰的項目結構华蜒,甚至可以將Weex-hackernews拿過來直接搬到自己的項目中去進行開發(fā)宾茂。下面我將逐條對其進行講解。

項目整體結構##

Snip20170221_1.png
  • components:存放視圖組件的.vue文件
  • store:存放接口請求的方法及數(shù)據(jù)封裝對象
  • view:存放主視圖的.vue文件难捌,即控制器膝宁。
  • entry.js:全局對象聲明
  • router.js:路由聲明
    重點就這幾塊,只要這幾塊能理解清楚寫項目就沒有什么問題了根吁。

router.js###

只需要將你的.vue文件導入到router.js中员淫,然后配置路由就可以訪問你的界面了。這里舉個例子

import Home from './views/Home.vue'


export default new Router({
  routes: [
    { path: '/home', component: Home },
    { path: '/', redirect: '/home' }//這是根路由击敌,第一次進來就訪問它
  ]
})

如果你的Home.vue有點內(nèi)容的話就可以在網(wǎng)頁上呈現(xiàn)了介返。

store里才是重點###

store里主要是處理網(wǎng)絡和數(shù)據(jù)部分,使用的是Vuex的語法

1沃斤、actions.js#####

View獲取接口數(shù)據(jù)需要調用這里的方法圣蝎。

export function FETCH_LIST_DATA ({ commit, dispatch, state }, { type }) {
  commit('SET_ACTIVE_TYPE', { type })
  return fetchIdsByType(type)
    .then(ids => commit('SET_LIST', { type, ids }))
    .then(() => dispatch('ENSURE_ACTIVE_ITEMS'))
}

這個是最典型的,commit方法是將數(shù)據(jù)通過某個方法保存起來衡瓶,而真正去發(fā)送請求的是fetchIdsByType(type)徘公,如果view想要拿到數(shù)據(jù),必須先保存起來再使用哮针。

2关面、fetch.js#####

這里主要是具體地去調接口了,可以看到

export function fetch (path) {
  // console.log('----------> fetch: ' + path)
  return new Promise((resolve, reject) => {
    stream.fetch({
      method: 'GET',
      url: `${baseURL}/${path}.json`,
      type: 'json'
    }, (response) => {
      // console.log('----------> response.status: ' + response.status)
      if (response.status == 200) {
        resolve(response.data)
      }
      else {
        reject(response)
      }
    }, () => {})
  })
}

這是一個get請求的模板十厢,還可以封裝post等請求的模板等太。這里才是真正與與服務器做交互的地方。

3蛮放、index.js#####

這里是數(shù)據(jù)聲明的地方缩抡,如果想在view使用接口傳過來的某個數(shù)據(jù),都需要在這里做預定義處理包颁,方便方法將數(shù)據(jù)存儲在你預定義的變量里缝其。

const store = new Vuex.Store({
  actions,
  mutations,

//新建一個clientId變量
clientId:null,
......
})

只需要在new Vuex.Store里聲明一下。

4徘六、mutations.js#####

這邊就是具體將值賦值給定義的變量内边,看個栗子就明白了

export function SET_ACTIVE_TYPE (state, { type }) {
  state.activeType = type
}

這樣相信你可以將store里的內(nèi)容連起來了,這里你或許還有一個疑問待锈,我如何在view內(nèi)使用這些數(shù)據(jù)漠其,只要使用this.$store.clientId就可以拿到數(shù)據(jù)了。

結語##

其他模塊我也不再贅述,相信你自己會弄明白的和屎,最最主要的是store里東西拴驮。后期我會將繼續(xù)與手機端對接做介紹。本文純屬個人理解柴信,如有爭議套啤,還望指教。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末随常,一起剝皮案震驚了整個濱河市潜沦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绪氛,老刑警劉巖唆鸡,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異枣察,居然都是意外死亡争占,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門序目,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臂痕,“玉大人,你說我怎么就攤上這事猿涨∥胀” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵嘿辟,是天一觀的道長舆瘪。 經(jīng)常有香客問我片效,道長红伦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任淀衣,我火速辦了婚禮昙读,結果婚禮上,老公的妹妹穿的比我還像新娘膨桥。我一直安慰自己蛮浑,他們只是感情好,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布只嚣。 她就那樣靜靜地躺著沮稚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪册舞。 梳的紋絲不亂的頭發(fā)上蕴掏,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼盛杰。 笑死挽荡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的即供。 我是一名探鬼主播定拟,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逗嫡!你這毒婦竟也來了青自?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤祸穷,失蹤者是張志新(化名)和其女友劉穎性穿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雷滚,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡需曾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祈远。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呆万。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖车份,靈堂內(nèi)的尸體忽然破棺而出谋减,到底是詐尸還是另有隱情,我是刑警寧澤扫沼,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布出爹,位于F島的核電站,受9級特大地震影響缎除,放射性物質發(fā)生泄漏严就。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一器罐、第九天 我趴在偏房一處隱蔽的房頂上張望梢为。 院中可真熱鬧,春花似錦轰坊、人聲如沸铸董。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粟害。三九已至,卻和暖如春颤芬,著一層夾襖步出監(jiān)牢的瞬間悲幅,已是汗流浹背孽文。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留夺艰,地道東北人芋哭。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像郁副,于是被迫代替她去往敵國和親减牺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

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