第一次寫小程序,由于偏愛 Vue,所以選則了 mpvue 這個框架。那就寫個青銅版微博來練練手吧。
圖1:微博首頁
圖2:發(fā)微博
圖3:我的
1、小程序框架:mpvue
2、http 請求庫:fly.js
3、狀態(tài)管理:vuex
4、數(shù)據來源:微博開放平臺 api
1、微博列表
2、發(fā)微博
3、個人信息
4、我的粉絲
5、我關注的人
6、我的收藏(收藏和取消收藏)
7、查看我的微博(由于api限制,只能查看自己的)
8、分享到微信聊天
api ----------------------- 所有的api劃分模塊 |-- user.js // 用戶相關的 api config ---------------------- 一些基本的配置 |-- const.js // 基本常量 |-- fly.js // fly 的配置 |-- http.js // 基本的請求封裝 比如 get,post 請求 components -------------------- 最小單位的基礎組件 |-- Btn.vue // button 組件 |-- Input.vue // input 組件 views -------------------- 業(yè)務組件 |-- PostCell.vue // 信息流單條微博組件 |-- UserCell.vue // 單個用戶信息組件 pages ---------------------- 所有的頁面 |-- timeline ------------- 時間線頁面(一個頁面一個文件夾) |-- index.vue // 頁面組件 |-- main.js // 頁面的入口文件 |-- main.json // 頁面配置文件 store --------------------- 狀態(tài)管理 | -- 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 --------------------- 存放所有的工具函數(shù) |-- index.js // 工具函數(shù) images --------------------- 所有的圖片資源(小程序中不支持 svg) |-- home.png app.json -------------------- 整個小程序的全局配置 App.vue -------------------- 給全局入口一個掛載點 main.js -------------------- 全局入口文件 復制代碼
跟 Vue 項目中使用只有一個區(qū)別
vue :
new Vue({ el: '#app', store, .... })復制代碼
mpvue:
Vue.prototype.$store = store 掛在到全局
一般來說,實在找不到合適的模塊,就先公共的里面,以后想整合到模塊中也很簡單,盡量還是用模塊區(qū)分。
<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 () { // 小程序的鉤子函數(shù) }, methods: { ...mapMutations({ someMutation: 'someMutation' }), ...mapActions({ someAction: 'someAction' }) } } </script> <style lang="scss" scoped> </style> 復制代碼
// vue 的鉤子函數(shù) created () { }, // 小程序的生命周期函數(shù) onShow() { } 。。。復制代碼
看到這里你會發(fā)現(xiàn),跟寫 vue 項目沒啥太大的區(qū)別。完全是 vue 的寫法,只需要去關注小程序提供哪些能力即可。
通過微博開放平臺 api,通過 oauth 2.0 授權操作,拿到自己的 access_token。微博提供了以下開放接口,但是對于單個用戶來說,微博每天限制 150 次請求,開發(fā)的時候省著點用吧。
相比于微信 oauth 授權,微博顯得更加開放,微信是不給開發(fā)權限的,必須提供備案的域名。
說明 :發(fā)微博的接口微博是沒有提供的,我借用了第三方分享到微博這個接口,看上去跟發(fā)微博沒啥區(qū)別,但內容中必須帶上一個安全域名,這個域名是在微博開放平臺設置的