`
cangdu666
  • 浏览: 16588 次
社区版块
存档分类

分享一个vuejs的入门项目

    博客分类:
  • vue
vue 
阅读更多
学习一个框架有两个阶段最难,一个是初期的入门,一个是后期的源码阅读。

虽然vue的官方文档非常棒,在我读完文档之后还是会有一种感觉,知识点我都懂,然后呢?似乎大体知道该怎么利用vue全家桶去搭建一个项目,但具体下笔又有点模糊。vue官方的脚手架并没有将vue-router和vuex包括进去,所以我们需要自己去配置它们。虽然找了一堆的demo,但是都没有达到我想要的效果。正好趁着自己接了一个小项目,拿来练手。

这个项目主要的作用是熟悉 vue vue-router vuex 在初期搭建项目的时候该怎么配置,以及怎么去互相配合,xx.vue文件该怎么写,如何创建和使用组件,vuex的state,mutations,actions,getters怎么配合,形成一个完整的流程。

项目并不复杂,所以拿出来分享,希望对大家有帮助

源码地址:https://github.com/bailicangdu/vue2-happyfri


## 路由配置
```js
import App from '../App'

export default [{
    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
```js
import ajax from '../config/ajax'

export default {
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
```js
const GET_DATA = 'GET_DATA'
const ADD_ITEMNUM = 'ADD_ITEMNUM'
const REMBER_ANSWER = 'REMBER_ANSWER'
const REMBER_TIME = 'REMBER_TIME'
const INITIALIZE_DATA = 'INITIALIZE_DATA'
const GET_USER_INFORM = 'GET_USER_INFORM'

export default {
[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
```js
import Vue from 'vue'
import Vuex from 'vuex'
import mutations from './mutations'
import actions from './action'


Vue.use(Vuex)

const state = {
level: '第一周',
itemNum: 1,
allTime: 0,
timer: '',
itemDetail: [],
answerid: {}
}

export default new Vuex.Store({
state,
actions,
mutations
})
```


## 创建vue实例
```js
import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from './router/router'
import store from './store/'

Vue.use(VueRouter)
const router = new VueRouter({
routes
})

new Vue({
router,
store,
}).$mount('#app')
```
0
0
分享到:
评论

相关推荐

    您可能不知道Vuejs:Vuejs从入门到精通系列文章

    我为什么要写这个系列虽然网上各种有关Vuejs实践的文章和书籍琳琅满目, (Vuejs官方教程是我见过的最好的文档了,没有一个,建议大家在使用Vuejs之前,还是先去通读一遍。)也非常详细,但是还是偶尔有很多朋友问我...

    vue.js百度网盘链接.txt

    vue基础视频+项目案例,很详细的视频教程,前端最新js框架技术。

    vue开发教程&案例&相关项目

    3. **Quasar**:一个用于构建高性能 PWA 和移动应用的框架,支持 Vue 2 和 Vue 3。 #### 六、项目模板和脚手架 项目模板和脚手架能够帮助开发者快速启动项目。 1. **Vue CLI**:提供了多种预设模板,可以根据具体...

    Vue学习资料包

    其次,`Vue.js-分享-vuejs的分享-介绍入门开启vuejs之旅.pptx` 和 `vue.pptx` 很可能是课程或讲座的PPT材料,它们可能涵盖以下主题: 1. **Vue.js简介**:介绍Vue的基本理念、优点和适用场景。 2. **快速上手**:...

    jeodiong.github.io:我的博客Site about me

    入门 这是一个使用VueJS和Github Pages构建的网站,包含有关我的信息。我希望你会喜欢。” 这段话揭示了网站的构建技术和内容。首先,使用了VueJS,这是一个非常流行的前端JavaScript框架,它用于构建用户界面,以其...

    vue服务端渲染操作简单入门实例分析

    随便建一个目录,然后执行npm init初始化项目,生成工程文件package.json;创建server.js;然后按照vue-ssr官方链接:https://ssr.vuejs.org/zh/basic.html教程里面介绍的server.js,复制教程里面代码,如下

    vue视频课件

    1. Vue的基本安装与配置:了解如何设置项目环境,安装Vue CLI,创建第一个Vue应用。 2. 模板语法:学习Vue的模板结构,理解变量绑定、条件语句、循环结构等。 3. 组件系统:掌握组件的创建、使用和复用,以及父子...

    Vue.js3.0核心源码解析课程-视频教程网盘链接提取码下载 .txt

    在 2019 年 Vue 就像一匹黑马力压群雄,独占前端er 的宠爱,Github Star 排名荣登第一也反映了国内开发者对 Vue 的喜爱。专栏将对 Vue.js 3.0 的框架源码进行系统、细致地分析。 深入到内核剖析实现原理,探究源码...

    vue-white-dashboard:Creative Tim的Vue White控制台

    Vue White仪表板是一个漂亮的Bootstrap 4 Admin仪表板,其大量组件内置在一起,看起来非常漂亮。 如果您正在寻找一种工具来管理和可视化有关您的业务的数据,则此仪表板很适合您。 它融合了容易上手的颜色,宽大的...

    primevue:最完整的Vue UI组件库

    PrimeVue有一个活跃的开发者社区,用户可以在社区论坛上提问、分享经验或寻求帮助。此外,开发者还可以通过GitHub仓库提交问题或贡献代码,共同推动项目的进步。 9. **持续更新与维护**: PrimeVue团队持续对项目...

Global site tag (gtag.js) - Google Analytics