參考原文:https://www.jianshu.com/p/2c363ea29cdavue
mpvue的目錄結構以下圖:vuex
(todo是我mpvue項目的名稱)npm
dist目錄是在執行npm run dev後由src編譯生成的微信小程序文件。json
counter目錄是mpvue官方快速模板中存放vuex的目錄,也就相似於vuex中的store目錄。小程序
project.config.json是開發工具的配置文件。微信小程序
app.json數組
app.json
是小程序的全局配置文件,其包含了小程序的頁面文件路徑配置、窗口的全局樣式信息、底部選項卡式菜單欄的配置,以及一些小程序網絡超時的配置等等。與原生小程序的app.js文件的做用同樣。微信
<script>
/* 這部分至關於原生小程序的 app.js */
export default {
created () {
console.log('miniapp created!!!')}
}
</script>
<style>
/* 這部分至關於原生小程序的 app.wxss */
.container { background-color: #cccccc; }
</style>
App.vue網絡
App.vue
組件被
src/main.js
引入並被設置了一個
mpType
的屬性值,其值爲
app
。這個值是爲了與後面要講的小程序頁面組件所區分開來,由於小程序頁面組件和這個
App.vue
組件的寫法和引入方式是一致的,爲了區分二者,須要設置
mpType
值。引入這個
App.vue
組件後,會用它做爲參數來建立一個Vue的實例,並調用
$mount()
方法加載。下面是這個過程的關鍵代碼行:
App.mpType = 'app' const app = new Vue(App) app.$mount()
在src/page目錄下的index文件夾:app
{
"pages": ["pages/index/main"],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "第一個小程序",
"navigationBarTextStyle": "black"}
}
可是,大多數狀況下咱們的小程序會由不少個頁面組成,在src/pages
目錄下編寫多個頁面組件後,mpvue也會自動把它們都添加進配置文件,可是因爲小程序有一個機制:
配置文件中pages數組裏的第一個page路徑會被當作是首頁。
若是你指望的首頁組件並無被mpvue添加到第一個路徑的話,就不會被當作首頁顯示。好比有多個頁面,並在dist/app.json
裏生成的是下面的序列,則第一個pages/articles/main
頁面會被當作首頁:
"pages": [ "pages/articles/main", "pages/authors/main", "pages/index/main", "pages/kickstart/main" ]
爲了解決這種狀況,咱們須要顯式的去指定首頁。能夠在src/main.js
的配置裏,加入這樣一行配置信息:
pages: [ '^pages/index/main' ]
注意:以上配置中指定爲首頁的路徑前面有個^
符號。
加入這行配置以後,pages/index/main
老是會在最終生成的dist/app.json
中排在第一個位置,成爲首頁。