微信小程序的模塊化

模塊化

模塊化:
可以將一些公共的代碼抽離成爲一個單獨的 js 文件,作爲一個模塊。模塊只有通過 module.exports 或者 exports 才能對外暴露接口。

使用微信小程序構建新聞列表的代碼來講解模塊化

創建data目錄,新建posts-data.js文件
在這裏插入圖片描述
posts-data.js 代碼如下:

var local_database = [
  {
    date: "Sep 18 2016",
    title: "正是蝦肥蟹壯時",
    imgSrc: "/images/post/crab.png",
    avatar: "/images/avatar/1.png",
    content: "菊黃蟹正肥,品嚐秋之味。徐志摩把,“看初花的荻蘆”和“到樓外樓喫蟹”,並列爲秋天來杭州不能錯過的風雅之事;用林妹妹的話講是“螯封嫩玉雙雙滿,",
    reading: "112",
    collection: "96",
    headImgSrc: "/images/post/crab.png",
    author: "林白衣",
    dateTime: "24小時前",
    detail: "菊黃蟹正肥,品嚐秋之味。徐志摩把“看初花的荻蘆”和“到樓外樓喫蟹”並列爲秋天來杭州不能錯過的風雅之事;用林妹妹的話講是“螯封嫩玉雙雙滿,殼凸紅脂塊塊香”;在《世說新語》裏,晉畢卓更是感嘆“右手持酒杯,左手持蟹螯,拍浮酒船中,便足了一生矣。”漫漫人生長路,美食與愛豈可辜負?於是作爲一個喫貨,突然也很想回味一下屬於我的味蕾記憶。記憶中的秋蟹,是家人的味道,瀰漫着濃濃的親情。\n\n是誰來自山川湖海,卻囿於晝夜,廚房與愛? 是母親,深思熟慮,聰明耐心。喫蟹前,總會拿出幾件工具,煞有介事而樂此不疲。告訴我們螃蟹至寒,需要佐以薑茶以祛寒,在配備的米醋小碟裏,亦添入薑絲與紫蘇,前者驅寒後者增香。泡好菊花茶,歲月靜好,我們靜等。",
    postId: 0,
    music: {
      url: "http://ws.stream.qqmusic.qq.com/C100003507bR0gDKBm.m4a?fromtag=38",
      title: "夜夜夜夜-齊秦",
      coverImg: "http://y.gtimg.cn/music/photo_new/T002R150x150M000001TEc6V0kjpVC.jpg?max_age=2592000"
    }
  },
  {
    title: "比利·林恩的中場故事",
    content: "一 “李安是一位絕不會重複自己的導演,本片將極富原創性李安衆所矚目的新片《比利林恩漫長的中場休息》,正式更名《半場無戰事》。",
    imgSrc: "/images/post/bl.png",
    reading: 62,
    detail: "一 “李安是一位絕不會重複自己的導演,本片將極富原創性”李安衆所矚目的新片《比利林恩漫長的中場休息》,正式更名《半場無戰事》。預告片首次曝光後,被視作是明年奧斯卡種子選手。該片根據同名暢銷書改編。原著小說榮獲美國國家圖書獎。也被BBC評爲21世紀最偉大的12本英文小說之一。影片講述一位19歲德州男孩的比利·林恩入伍參加伊戰,在一次交火中他大難不死,意外與戰友成爲大衆的關注焦點,並被塑造成英雄。之後他們返回國內,在橄欖球賽中場休息時授勳。這名戰爭英雄卻面臨前所未有的心靈煎熬……李安爲什麼選中這部電影來拍?因爲李安想要挑戰前所未有的技術難題:以120幀每秒的速度、4K、3D技術全面結合,來掀起一場電影視覺革命。什麼意思?所謂“電影是24格每秒的謊言”,其中的24格,就是幀數。",
    collection: 92,
    dateTime: "24小時前",
    headImgSrc: "/images/post/bl.png",
    author: "迷的城",
    date: "Nov 20 2016",
    avatar: "/images/avatar/1.png",
    postId: 1,
    music: {
      url: "http://ws.stream.qqmusic.qq.com/C100003GdCmG4NkEOR.m4a?fromtag=38",
      title: "鬼迷心竅-李宗盛",
      coverImg: "http://y.gtimg.cn/music/photo_new/T002R150x150M000002xOmp62kqSic.jpg?max_age=2592000"
    }
  },
  {
    //按住alt + shift + F 可以格式化代碼樣式
    title: "當我們在談論經濟學時,我們在談論什麼?",
    content: "引言在我跟學生課後交流時,以及我在知乎上閱讀有關“經濟”問題的論題時,經常會遇到這樣的情況:...",
    detail: "1 引言\n\n在我跟學生課後交流時,以及我在知乎上閱讀有關“經濟”問題的論題時,經常會遇到這樣的情況:有些人套用“經濟理論“的知識去解釋現實中發生的經濟事件,結果發現很多事情講不通,或者發現”理論告訴我們的“與現實發生的是相反的。也有學生經常跟我說:經濟學有什麼用?爲了說明這個,我經常從兩個方面來進行解釋,嘗試用我個人所擅長的解決問題的視角和他們能夠聽懂的方法來說明經濟學是什麼,它的作用邊界在哪裏:\r\n\n2 ”簡筆素描“與”油畫肖像“我們給人畫肖像畫,可以用簡筆素描,也可以用油畫肖像。油畫肖像可以在最大程度上保存了人物的各方面的細節和特點,而簡筆素描則忽略了很多細節。儘管簡筆素描忽略了人物的許多細節,但我們仍舊能夠很容易的認出畫中的人物是誰。爲什麼?因爲這種方法保留了人物最顯著的特徵,以至於我們可以忽略其次要特徵而對人物做出判定。\n\n2.1 ”簡筆素描“對於絕大多數的非經濟學專業大衆而言(經濟學相關專業碩士學歷以上),人們所接觸到的經濟學都是初級微觀經濟學。所謂的初級微觀經濟學,對於經濟問題的”畫法“就是一種”簡筆素描“。比如初級微觀經濟學教材中廣爲使用的這種一元一次需求函數:y=bx+a,需求量的唯一變量是產品價格。但僅憑直覺我們就可以斷言,現實中影響需求量的因素絕不止價格這一種,因此我們可以認爲這個模型對經濟問題的描述是失真的。然而但這種失真卻是必要的和有意義的,其意義在與它利於揭示價格對於需求的影響,而不在於否定影響需求的其他因素——",
    imgSrc: "/images/post/sls.jpg",
    headImgSrc: "/images/post/sls.jpg",
    reading: 62,
    collection: 92,
    author: "知乎",
    date: "Nov 12 2016",
    dateTime: "三天前",
    avatar: "/images/avatar/3.png",
    postId: 2,
    music: {
      url: "http://ws.stream.qqmusic.qq.com/C100004HLusI2lLjZy.m4a?fromtag=38",
      title: "女兒情-萬曉利",
      coverImg: "http://y.gtimg.cn/music/photo_new/T002R150x150M000004Wv5BO30pPc0.jpg?max_age=2592000"
    }
  },
  {
    title: "微信·小程序開發工具安裝指南",
    content: "這兩天閒來無事,也安裝了 “微信摺疊”的開發工具來玩一下。以下是一些小道消息及使用體驗,過兩天我會寫一篇文章以開發者的角度來詳細評價微信小程序",
    imgSrc: "/images/post/xiaolong.jpg",
    reading: 102,
    detail: "這兩天閒來無事,也安裝了 “微信摺疊”的開發工具來玩一下。以下是一些小道消息及使用體驗,過兩天我會寫一篇文章以開發者的角度來詳細評價微信小程序:微信小程序不能開發遊戲類、直播類功能,小程序每個人關注的上限是20個(還不確定,不過我相信這是真的,這次公佈的API裏並沒有視頻組件。微信太大,蘋果要有所顧忌,但是微信也要做出相應的讓步)微信目前有沒有同蘋果商談好,還是個未知數,畢竟會對AppStore有一定的衝擊。拋棄了大量的javascript組件後,這個生態體系變得相當的封閉,微信解釋肯定是:爲了更好的性能提升。那麼我們拭目以待。小程序的入口是微信裏的三級菜單,就是在“Tab欄發現裏的遊戲下面加入一個“小程序”。反正,這一欄裏的購物和遊戲我是從來沒點進去過的。以騰訊的尿性,小程序同服務號一樣,其關係鏈及重要功能的開放程度會因“人”而異。對,優質的接口只會開放給騰訊的兒子們(滴滴呀、京東呀)",
    collection: 92,
    dateTime: "24小時前",
    headImgSrc: "/images/post/xiaolong.jpg",
    author: "貓是貓的貓",
    date: "Nov 20 2016",
    avatar: "/images/avatar/5.png",
    postId: 3,
    music: {
      url: "http://ws.stream.qqmusic.qq.com/C100002mWVx72p8Ugp.m4a?fromtag=38",
      title: "戀戀風塵-老狼",
      coverImg: "http://y.gtimg.cn/music/photo_new/T002R150x150M000001VaXQX1Z1Imq.jpg?max_age=2592000",
    }
  },
  {
    title: "從視覺到觸覺 這款VR手套能給你真實觸感",
    content: "8月29日消息,據國外媒體VentureBeat報道,一家名爲Dexta Robotics的公司最近發佈了一款有望變革虛擬現實手部追蹤與交互方式的新產品",
    imgSrc: "/images/post/vr.png",
    reading: 102,
    detail: "消息,據國外媒體VentureBeat報道,一家名爲Dexta Robotics的公司最近發佈了一款有望變革虛擬現實手部追蹤與交互方式的新產品。該產品名爲“Dexmo”,它是一款像手套那樣戴在手上使用的未來主義外骨骼。它內置大量的元件,能夠與VR體驗進行交互,可幫助你感覺握在你的雙手的虛擬物體。Dexmo據Dexta稱,“Dexmo是一款針對你的雙手的機械外骨骼。它能夠捕捉你的手部運動,以及提供即時的力反饋。有了Dexmo,你可以感受到虛擬物體的大小、形狀和堅硬度。你可以接觸數字世界。”市面上已經有數款產品旨在處理虛擬現實中的手部交互,也有相關的產品即將要進入市場。例如,頗受歡迎的HTC Vive頭盔配有一副控制器,其控制器能夠使得追蹤系統看到你的雙手,讓你可以用它們來在特定體驗中與物體進行交互。今年晚些時候,Oculus將開始出貨類似的手部控制產品Oculus Touch。10月,索尼也將開始出貨配備兩個PlayStation Move手部控制器的PS VR。Leap Motion甚至更進一步:利用傳感器來追蹤手指和手部的運動。",
    collection: 26,
    dateTime: "24小時前",
    headImgSrc: "/images/post/vr.png",
    author: "深白色",
    date: "Nov 20 2016",
    avatar: "../../../images/avatar/3.png",
    postId: 4,
    music: {
      url: "http://ws.stream.qqmusic.qq.com/C100000Zn0vS4fKKo8.m4a?fromtag=38",
      title: "沉默是金-張國榮",
      coverImg: "http://y.gtimg.cn/music/photo_new/T002R150x150M000003at0mJ2YrR2H.jpg?max_age=2592000"
    }
  },
  {
    title: "愛奇藝創維開展戰略合作,合力佈局開放娛樂生態",
    content: "愛奇藝和創維分別作爲國內領先的在線視頻品牌",
    imgSrc: "/images/iqiyi.png",
    reading: 96,
    detail: "愛奇藝和創維分別作爲國內領先的在線視頻品牌和家電品牌。雙方一直銳意創新,爲用戶提供優質的服務體驗和產品體驗。據悉,愛奇藝與創維將展開從資本到VIP會員服務等各方面的深入合作。籍由此次合作,愛奇藝將戰略投資創維旗下擁有高端互聯網電視品牌的酷開公司。從下一財年開始,創維旗下互聯網電視將通過銀河互聯網電視集成播控平臺,預置VIP會員服務及相關內容。這種捆綁終端與VIP內容的全新銷售模式,將大幅提升互聯網電視終端用戶的體驗,給予用戶更多優質內容的選擇。",
    collection: 26,
    dateTime: "21小時前",
    headImgSrc: "/images/iqiyi.png",
    author: "深白色",
    date: "Nov 20 2016",
    avatar: "../../../images/avatar/5.png",
    postId: 5,
    music: {
      url: "http://ws.stream.qqmusic.qq.com/C100002I8eGJ28BI17.m4a?fromtag=38",
      title: "朋友-譚詠麟",
      coverImg: "http://y.gtimg.cn/music/photo_new/T002R150x150M000004eGsCN3SUheO.jpg?max_age=2592000"
    }
  },
]

module.exports = {
  postList: local_database
}

post.js 中使用 require 方法加載posts-data.js模塊文件

// pages/post/post.js
var postsData = require('../../data/posts-data.js')
Page({

  data: {
    posts_key: [

    ]
  },

  onLoad: function(options) {
    this.setData({
      posts_key: postsData.postList
    })
  },

})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章