第一次寫小程序,因爲偏心 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 -------------------- 全局入口文件
複製代碼
跟 Vue 項目中使用只有一個區別
vue :
new Vue({
el: '#app',
store,
....
})複製代碼
Vue.prototype.$store = store
掛在到全局
<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>
複製代碼
// vue 的鉤子函數
created () {
},
// 小程序的生命週期函數
onShow() {
}
。。。複製代碼
看到這裏你會發現,跟寫 vue 項目沒啥太大的區別。徹底是 vue 的寫法,只須要去關注小程序提供哪些能力便可。
相比於微信 oauth 受權,微博顯得更加開放,微信是不給開發權限的,必須提供備案的域名。
說明:發微博的接口微博是沒有提供的,我借用了第三方分享到微博這個接口,看上去跟發微博沒啥區別,但內容中必須帶上一個安全域名,這個域名是在微博開放平臺設置的。