這篇文章主要介紹了Vue腳手架如何編寫(xiě)試卷頁(yè)面功能,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、沂南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
Vue是一套用于構(gòu)建用戶(hù)界面的漸進(jìn)式JavaScript框架,Vue與其它大型框架的區(qū)別是,使用Vue可以自底向上逐層應(yīng)用,其核心庫(kù)只關(guān)注視圖層,方便與第三方庫(kù)和項(xiàng)目整合,且使用Vue可以采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫(kù)開(kāi)發(fā)復(fù)雜的單頁(yè)應(yīng)用。
腳手架(vue-cli)
(一)什么是腳手架
概念:是一種用于快速開(kāi)發(fā)Vue項(xiàng)目的系統(tǒng)架構(gòu)
優(yōu)點(diǎn):能夠幫助咱們快速的開(kāi)發(fā)項(xiàng)目
缺點(diǎn):由于腳手架適用于各種項(xiàng)目的開(kāi)發(fā),而不是單獨(dú)的針對(duì)某一項(xiàng)目單獨(dú)研發(fā)的,會(huì)出現(xiàn)代碼冗余
腳手架的使用:
1、安裝腳手架 vue-cli
全局安裝打開(kāi)cmd運(yùn)行:cnpm install -g @vue/cli
2、查看當(dāng)前版本號(hào):
vue -V
3、創(chuàng)建項(xiàng)目:
根目錄下打開(kāi)cmd運(yùn)行:vue create objectname
項(xiàng)目名稱(chēng)(名稱(chēng)不能有大寫(xiě))
正文開(kāi)始
Vue腳手架實(shí)現(xiàn)試卷頁(yè)面功能
將moduleA中的store模塊化
在state中放入變量subjectList
,通過(guò)mutations更新subjectList
在Home.vue中通過(guò)mapMutations
激活mutations中的getSubjectList
,從而更新subjectList
import '@/mock' export default { namespaced: true, state: { subjectList: [] }, mutations: { getSubjectList(state, payload) { state.subjectList = payload } } }
store/index.js import Vuex from 'vuex' import Vue from 'vue' Vue.use(Vuex) import user from './modules/user' import moduleA from './modules/moduleA' let store =new Vuex.Store({ modules:{ moduleA } }) export default store
Home.vue
fmtSubjectType,fmtOrder2ABC為過(guò)濾器,checkSubjectType
為方法,統(tǒng)一放在Vue.mixin中,保存在mixin中的index.js文件中
通過(guò)checkSubjectType方法的結(jié)果真假控制此div是否存在
<template> <div class="main"> <ul> <li class="item" v-for="(item, i) in subjectList" :key="i"> <h5>{{i+1}}.[{{item.type|fmtSubjectType}}] {{item.title}}</h5> <div > {{item.author}}{{item.createDate}} </div> <fieldset v-if="checkSubjectType(item.type)"> <legend >選項(xiàng)</legend> <div v-for="(choice, j) in item.choice" :key="j"> {{j|fmtOrder2ABC}} {{choice.answer}} </div> </fieldset> <div v-if="checkSubjectType(item.type)">答案:{{item.answer}}</div> <div >解析:{{item.desc}}</div> </li> </ul> </div> </template>
<script> import '@/mock' import {createNamespacedHelpers} from 'vuex' let {mapState,mapMutations,mapActions}= createNamespacedHelpers('moduleA') export default { async created() { let {subjectList} = await this.$get('/subjectList') this.getSubjectList(subjectList) }, computed: { ...mapState(['subjectList']) }, methods: { ...mapMutations(['getSubjectList']), } }; </script>
<style scoped lang='scss'> .main{ border: 1px solid red; .item{ padding: 20px 10px; border-bottom: 1px solid #ccc; } } </style>
mixin/index.js
通過(guò)切 換BASE_URL 來(lái)切換接口,axios中的url是通過(guò) BASE_URL 拼接的
import axios from 'axios' import Vue from 'vue' import { BASE_URL } from '@/config' import {SUBJECT_TYPE} from '@/config/enum' Vue.mixin({ methods: { async $get(url,params){ let {data} = await axios.get(BASE_URL+url,{params}) return data }, checkSubjectType(type){ return type===SUBJECT_TYPE.DANXUAN||type===SUBJECT_TYPE.DUOXUAN } }, filters:{ fmtSubjectType(val){ return ['單選題', '多選題', '判斷題', '簡(jiǎn)答題'][val] }, fmtOrder2ABC(val) { return 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[val] } }, data() { return { SUBJECT_TYPE } }, })
config/index.js
通過(guò)MODE的改變,更換接口
import {MODE_TYPE} from './enum' const BASE_URL_BEF='' const BASE_URL_PRO='XXX' const BASE_URL_DEV='PPPP' const MODE=MODE_TYPE.BEF export const BASE_URL = [BASE_URL_BEF,BASE_URL_PRO,BASE_URL_DEV][MODE]
config/enum.js
鑒于魔法數(shù)字的緣故,通過(guò)如下,使代碼更清晰
//枚舉 export const MODE_TYPE={ BEF:0, PRO:1, DEV:2 } export const SUBJECT_TYPE={ DANXUAN:0, DUOXUAN:1, PANDUAN:2, JIANDA:3 }
mock/index.js
通過(guò)mock偽造數(shù)據(jù)
import Mock from 'mockjs' Mock.mock('/subjectList',{ "subjectList|10":[ { "id|+1": 1, "title": "@cword(5,10)", "type": "@integer(0,3)", author:"@cname", createDate:'@datetime', "choice": [ { "id": 11, "choice": "A", "answer": 0 }, { "id": 12, "choice": "B", "answer": 1 }, { "id": 13, "choice": "C", "answer": 2 }, { "id": 14, "choice": "D", "answer": 3 } ], "answer": "C", desc:'@cword(8,25)' } ] })
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Vue腳手架如何編寫(xiě)試卷頁(yè)面功能”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
當(dāng)前名稱(chēng):Vue腳手架如何編寫(xiě)試卷頁(yè)面功能
當(dāng)前地址:http://jinyejixie.com/article46/ghhheg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、商城網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站營(yíng)銷(xiāo)、搜索引擎優(yōu)化、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)