vuejs2 + wp-rest-api開(kāi)發(fā)web app
原文網(wǎng)址鏈接:vuejs2 + wp-rest-api開(kāi)發(fā)web app
之前我寫(xiě)了一篇《利用Cordova,jqurey與wp-rest-api制作一個(gè)屬于自己博客的移動(dòng)APP》,使用的是jQuery
mobile的方式進(jìn)行web app的開(kāi)發(fā),今天我就說(shuō)一下使用vuejs 與 wp-reset-api開(kāi)發(fā)一個(gè)web app的方法。
先看看做好以后的效果吧:
一、首先安裝nodejs
安裝方法請(qǐng)自行去官方網(wǎng)站查看
二、安裝vue-cli1、直接打開(kāi)nodejs的命令窗口輸入以下命令:
npm install -g vue-cli //全局安裝vue-cli
vue init webpack egtch //生成項(xiàng)目名為egtch的模板,這里的項(xiàng)目名egtch隨你自己寫(xiě)
輸入這個(gè)目錄后會(huì)出現(xiàn)如下所示
? Project name 自己填寫(xiě)一個(gè)項(xiàng)目名稱(chēng) ? Project description (A Vue.js project)
這里是項(xiàng)目描述,隨便填寫(xiě) ? Author 這個(gè)是開(kāi)發(fā)者信息,會(huì)自動(dòng)獲取,也可以自己設(shè)置Runtime + Compiler: recommended for most users Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specific HTML) are
ONLY allowed in .vue files - render functions are required elsewhere看到這個(gè),直接回車(chē)跳過(guò) ? Install vue-router? (Y/n)
//這里選擇y,安裝vue-router(路由)功能,以便我們進(jìn)行相應(yīng)的開(kāi)發(fā)。 ? Use ESLint to lint your
code? (Y/n) //如果你想要使用eslint提示,那么你選擇y,不知道這個(gè)是什么東西的同學(xué),直接選擇n吧。 ? Setup
unit tests with Karma + Mocha? //這兩個(gè)是js測(cè)試框架,選擇n ? Setup e2e tests with
Nightwatch? (Y/n) //這個(gè)也直接選擇n
2、以上步驟都完成后,即將看到如下的提醒哦
vue-cli · Generated "egtch". To get started: cd egtch npm install npm
run dev 3、然后我們?cè)趫?zhí)行以下命令 cd egtch //進(jìn)入項(xiàng)目所在目錄 npm install //初始化安裝依賴(lài)
這樣我們?cè)诨貋?lái)看我們的目錄結(jié)構(gòu),將在egtch目錄下生成如下目錄結(jié)構(gòu) vue-cli項(xiàng)目目錄
npm run dev //在瀏覽器中運(yùn)行當(dāng)前的vue項(xiàng)目
這樣就可以看到vue-cli默認(rèn)的一個(gè)頁(yè)面展現(xiàn)在我們眼前了,如下圖:
vue-cli演示頁(yè)面
4、在我們開(kāi)發(fā)中會(huì)用到vue-resource與stylus
我們可以通過(guò)命令 npm install vue-resource -save來(lái)進(jìn)行下載vue-resource安裝
npm install stylus -save
當(dāng)然也可以修改egtch根目錄下的packge.json文件中的代碼后,在執(zhí)行npm install,修改如圖
packge.json修改
并且修改
"devDependencies": {
…………
"css-loader": "^0.26.1", //在這個(gè)下面添加stylus
//必須要添加2個(gè)關(guān)于stylus的依賴(lài)庫(kù)
"stylus-loader": "^2.5.0",
"stylus": "0.52.4",
…………
}
三、wp-rest-api v2使用
(官方地址http://v2.wp-api.org/)?
比如,如果想要獲取wordpress中最新的文章,你可以直接在瀏覽器中輸入:?http://www.egtch.com/wp-json/...,大家可以通過(guò)本站的相關(guān)api去訪(fǎng)問(wèn)
如果想獲取指定的文章(按文章ID),可以輸入:?http://www.egtch.com/wp-json/...?獲取第一頁(yè)的文章http://www.egtch.com/wp-json/...?第二頁(yè)page=2以此類(lèi)推
更多關(guān)于wp-rest-api用法,請(qǐng)參考官方文檔api
1、打開(kāi)根目錄下的index.html,修改title,并且在head中增加手機(jī)端設(shè)備支持代碼
并且導(dǎo)入reset.css(自行到網(wǎng)上尋找適合自己的reset.css),并且將其放在static目錄中
2、在main.js中引入vue-resource
import VueResource from 'vue-resource'
Vue.use(VueResource)
3、在src/assets下新建一個(gè)css目錄,并在目錄下建立一個(gè)public.styl文件,其代碼如下
注意:使用stylus中,縮進(jìn)必須正確,否則就會(huì)出現(xiàn)嚴(yán)重的問(wèn)題
font-rem($num)
font-size ($num/16)rem
bg-change($color)
background $color
body
background #CCC
font-family "Microsoft Yahei","Helvetica Neue",Helvetica,Arial,sans-serif
font-weight lighter
height 100%
h1,h2,h3,h4,h5,h6
font-weight 400
color black
border-left 2px #CCC solid
margin 10px 0
padding 0 0 0 8px
line-height 1
font-rem(18)
//手機(jī)端真正實(shí)現(xiàn)1px的線(xiàn)
.line
width 90%
margin 0 auto
flex 1
position relative
top -6px
border-bottom 1px solid #F2F2F2
.line-k
width 100%
margin 10px auto 0 auto
flex 1
position relative
top -6px
border-bottom 1px solid #F2F2F2
.codecolorer-container
width 90%
background #f2f2f2
margin 0 auto
color dimgrey
overflow auto
border 1px #CCC solid
padding 3%
font-rem(14)
.wp-caption
text-align center
4、修改src目錄下的App.vue如下
5、我們?cè)趕rc目錄下的commponents目錄下建立一個(gè)Posts.vue來(lái)獲取,代碼如下:
6、建立一個(gè)Article.vue獲取文章內(nèi)容
{{article.title.rendered}}
7、再新建一個(gè)Categories.vue讀取分類(lèi)
{{categories[index].name}}{{categories[index].slug}}
8、建立一個(gè)Postcat.vue來(lái)獲取分類(lèi)目錄下的文章
? ? ? 以上我們就可以完成了獲得文章以及分類(lèi)目錄下的文章的相關(guān)代碼??瓷先ナ遣皇呛芎?jiǎn)單,使用vuejs確實(shí)可以讓我們省去很多的DOM操作。
? ? ? 更多代碼和實(shí)例,請(qǐng)直接查看本項(xiàng)目在github中的實(shí)例地址為:
? ? ??https://github.com/king2088/V...,如果你喜歡本實(shí)例,請(qǐng)記得在github上給我加星哦!
? ? ? 演示地址:
? ? ?
http://www.egtch.com/VueEgtch/
? ? ? 本程序會(huì)后續(xù)還會(huì)進(jìn)行相應(yīng)的更新維護(hù),希望大家關(guān)注,也希望大家關(guān)注vuejs