Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

vue2 + vue-router + vuex 入门项目

NotificationsYou must be signed in to change notification settings

ShaneLC/vue2-happyfri

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

非常简单的一个vue2 + vuex的项目,整个流程一目了然,麻雀虽小,五脏俱全,适合作为入门练习。

vuex的存在对于vue来说简直如同灵魂一般,让vue在组件之间的通信非常方便。

如果对您有帮助,您可以点右上角 "Star" 支持一下 谢谢! ^_^

或者您可以 "follow" 一下,我会不断开源更多的有趣的项目

如有问题请直接在 Issues 中提,或者您发现问题并有非常好的解决方案,欢迎 PR 👍

开发环境 macOS 10.12.3 Chrome 56 nodejs 6.10.0

这个项目主要用于 vue2 + vuex 的入门练习,另外推荐一个 vue2 比较复杂的大型项目,覆盖了vuejs大部分的知识点。目前项目已经完成。地址在这里

项目运行(nodejs 6.0+)

# 安装依赖npm install# 开启本地服务器localhost:8088npm run dev# 发布环境npm run build

效果演示

demo地址(请用chrome手机模式预览)

移动端扫描下方二维码

路由配置

importAppfrom'../App'exportdefault[{path:'/',component:App,children:[{path:'',component:r=>require.ensure([],()=>r(require('../page/home')),'home')},{path:'/item',component:r=>require.ensure([],()=>r(require('../page/item')),'item')},{path:'/score',component:r=>require.ensure([],()=>r(require('../page/score')),'score')}]}]

配置actions

importajaxfrom'../config/ajax'exportdefault{addNum({ commit, state},id){commit('REMBER_ANSWER',{ id})if(state.itemNum<state.itemDetail.length){commit('ADD_ITEMNUM',{num:1})}},getData({ commit, state}){ajax('GET','http://operating-activities.putao.com/happyfriday?active_topic_id=4').then(res=>{commit('GET_DATA',{res})})},initializeData({ commit}){commit('INITIALIZE_DATA')}}

mutations

constGET_DATA='GET_DATA'constADD_ITEMNUM='ADD_ITEMNUM'constREMBER_ANSWER='REMBER_ANSWER'constREMBER_TIME='REMBER_TIME'constINITIALIZE_DATA='INITIALIZE_DATA'constGET_USER_INFORM='GET_USER_INFORM'exportdefault{[GET_DATA](state,payload){if(payload.res.httpStatusCode==200){state.itemDetail=payload.res.topiclist;}},[GET_USER_INFORM](state,payload){state.user_id=payload.res.users_id;},[ADD_ITEMNUM](state,payload){state.itemNum+=payload.num;},[REMBER_ANSWER](state,payload){state.answerid[state.itemNum]=payload.id;},[REMBER_TIME](state){state.timer=setInterval(()=>{state.allTime++;},1000)},[INITIALIZE_DATA](state){state.itemNum=1;state.allTime=0;},}

创建store

importVuefrom'vue'importVuexfrom'vuex'importmutationsfrom'./mutations'importactionsfrom'./action'Vue.use(Vuex)conststate={level:'第一周',itemNum:1,allTime:0,timer:'',itemDetail:[],answerid:{}}exportdefaultnewVuex.Store({state,actions,mutations})

创建vue实例

importVuefrom'vue'importVueRouterfrom'vue-router'importroutesfrom'./router/router'importstorefrom'./store/'Vue.use(VueRouter)constrouter=newVueRouter({routes})newVue({router,store,}).$mount('#app')

About

vue2 + vue-router + vuex 入门项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript61.0%
  • Vue30.8%
  • HTML5.2%
  • CSS3.0%

[8]ページ先頭

©2009-2025 Movatter.jp