用 mpvue 寫個【微博-青銅版】微信小程序

第一次寫小程序,因爲偏心 Vue,因此選則了 mpvue 這個框架。那就寫個青銅版微博來練練手吧。javascript

效果截圖:

圖1:微博首頁


圖2:發微博


圖3:個人



技術要點

一、小程序框架:mpvuecss

二、http 請求庫:fly.jsvue

三、狀態管理:vuexjava

四、數據來源:微博開放平臺 apigit

實現的功能:

一、微博列表github

二、發微博vuex

三、我的信息json

四、個人粉絲小程序

五、我關注的人api

六、個人收藏(收藏和取消收藏)

七、查看個人微博(因爲api限制,只能查看本身的)

八、分享到微信聊天

項目結構


api -----------------------   全部的api劃分模塊
     |-- user.js   // 用戶相關的 api

  config ----------------------   一些基本的配置
     |-- const.js // 基本常量
     |-- fly.js   // fly 的配置
     |-- http.js  // 基本的請求封裝 好比 get,post 請求

 components --------------------   最小單位的基礎組件 
     |-- Btn.vue  // button 組件
     |-- Input.vue // input 組件
views --------------------   業務組件 
    |-- PostCell.vue  // 信息流單條微博組件
    |-- UserCell.vue // 單個用戶信息組件 pages ---------------------- 全部的頁面
     |-- timeline -------------   時間線頁面(一個頁面一個文件夾)
            |-- index.vue // 頁面組件
            |-- main.js  // 頁面的入口文件
            |-- main.json // 頁面配置文件

    store ---------------------   狀態管理
      | -- module -- 模塊
      |       |- user.js // 用戶模塊
      |       |- post.js // 微博模塊 
      | -- getters.js // 全局getters
      | -- actions.js  // 全局 actions 
      | -- mutations.js  // 全局 mutations
      | -- state.js  // 全局 state
      | -- mutation-types.js  // 全部的 mutation types
      | -- index.js  // 整合成一個 store,導出

    utils ---------------------   存放全部的工具函數    
      |-- index.js    // 工具函數

    images ---------------------   全部的圖片資源(小程序中不支持 svg)
      |-- home.png

   app.json --------------------   整個小程序的全局配置
   App.vue  --------------------   給全局入口一個掛載點
   main.js  --------------------   全局入口文件
   複製代碼

vuex 在 mpvue 中的使用

跟 Vue 項目中使用只有一個區別

vue :

new Vue({
    el: '#app',
    store,
    ....
})複製代碼

mpvue:

 Vue.prototype.$store = store 掛在到全局


通常來講,實在找不到合適的模塊,就先公共的裏面,之後想整合到模塊中也很簡單,儘可能仍是用模塊區分。

在 .vue 組件中使用 state, getter, mutation, action

<template>  
    <div class="container">    
        我是一個 .vue 組件  
    </div>
</template>
<script>
import { mapState, mapGetters, mapMutations, mapActions } from 'vuex'
export default {  
    data () {    
        return {}  
    },  
    computed: {   
         ...mapGetters({      
            userInfo: 'userInfo'   
         }),    
         ...mapState({
            someState: 'someState'
         })  
    },
  components: {  },
  onShow () {
    // 小程序的鉤子函數
  },
  methods: {
    ...mapMutations({
        someMutation: 'someMutation'
    }),
    ...mapActions({
       someAction: 'someAction'
    })  
  }
}
</script>
<style lang="scss" scoped>
</style>
複製代碼

在 mpvue 中使用小程序的生命週期鉤子函數

// vue 的鉤子函數
created () {

},
// 小程序的生命週期函數
onShow() {
}
。。。複製代碼

看到這裏你會發現,跟寫 vue 項目沒啥太大的區別。徹底是 vue 的寫法,只須要去關注小程序提供哪些能力便可。

微博數據 

經過 微博開放平臺 api,經過 oauth 2.0 受權操做,拿到本身的 access_token。微博提供瞭如下開放接口,可是對於單個用戶來講,微博天天限制 150 次請求,開發的時候省着點用吧。


相比於微信 oauth 受權,微博顯得更加開放,微信是不給開發權限的,必須提供備案的域名。

說明:發微博的接口微博是沒有提供的,我借用了第三方分享到微博這個接口,看上去跟發微博沒啥區別,但內容中必須帶上一個安全域名,這個域名是在微博開放平臺設置的。

相關文章
相關標籤/搜索