美文网首页
vuejs 的初上手项目

vuejs 的初上手项目

作者: 苍都 | 来源:发表于2017-03-28 09:32 被阅读0次

学习一个框架有两个阶段最难,一个是初期的入门,一个是后期的源码阅读。

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

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

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

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

路由配置

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

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

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

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实例

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')

相关文章

  • vuejs 的初上手项目

    学习一个框架有两个阶段最难,一个是初期的入门,一个是后期的源码阅读。 虽然vue的官方文档非常棒,在我读完文档之后...

  • 使用vue-cli创建项目

    使用vue-cli创建项目 标签(空格分隔): vueJS 说明:vue-cli 是一个官方发布vueJS项目脚...

  • vue-cli生成的webpack配置解析-build/dev-

    我们在使用vue-cli搭建vuejs项目(Vuejs实例-01使用vue-cli脚手架搭建Vue.js项目)的时...

  • CentOS 7.3 & Apache 2.4 配置虚拟

    实现vuejs+laravel项目,前后端分离项目部署在同一台服务器上。 www 根目录下vuejs开发的前端、 ...

  • Vue初解

    Vue是一个mvvm的框架(库)和angular类似 比较容易上手、小巧 官网http://cn.vuejs.or...

  • Vuejs学习笔记

    最近听说某个朋友的移动视频直播的项目使用了vuejs,我就动了学习vuejs的念头。 下面是学习笔记,留待以后使用...

  • Vue - CLI 创建项目 + 项目文件分析

    CLI = command line interface 安装: 创建项目(vuejs-playlist): us...

  • vuejs-hello vuejs

    这篇文章学习一下如何使用vuejs在页面输出最简单的hello vuejs 项目结构如下: 页面结构: 在浏览器中...

  • Vue 项目规范

    Vue 项目规范 vue项目规范以https://cn.vuejs.org/v2/style-guide/的A规范...

  • 0.利用vue-cli新建一个vue项目

    有三种方式创建vue项目,1.本地引入vuejs、2.使用cdn引入vuejs、3.使用vue-cli创建vue...

网友评论

      本文标题:vuejs 的初上手项目

      本文链接:https://www.haomeiwen.com/subject/puadottx.html