zoukankan      html  css  js  c++  java
  • 从零开始创建一个vue项目

    一、首先创建一个文件夹,在终端中输入

    1 vue create myapp

    选择默认defaule,等待项目的生成,项目生成后键入一下命令

     1 //进入项目
     2 
     3 cd myapp
     4 
     5 //启动项目
     6 
     7 npm run serve
     8 
     9 //或者
    10 yarn serve

    删除不必要的文件,梳理一下需要安装那些依赖和插件 

    1.axios 用来代替ajax发起请求

    2.iscroll 一个常用的滚动插件

    3.node-sass sass-loader 用来编写sass

    4.swiper 轮播图插件

    5.vue-router 路由插件

    6.vue-cookies vue项目中便捷的cookie

    使用命令安装这些插件

    1 cnpm i axios iscroll node-sass sass-loader swiper vue-router vue-cookies -D

    安装完成后引入vue

    在src下创建axios.js文件,写入

    import axios from 'axios'   //引入axios
    import vue from 'vue'
    vue.prototype.$axios = axios;   //添加原型
    
    
    //在main.js中写入
    import './axios.js'

    创建cookies.js文件,写入

    1 import vue from 'vue'
    2 import cookie from 'vue-cookie'
    3 vue.use(cookie)
    4 
    5 //在main.js中写入
    6 import './cookies.js'

    如果还需要eventbus可以创建eventbus.js

    1 import Vue from 'vue'
    2 
    3 var eventbus = new Vue()
    4 
    5 vue.prototype.$eventbus = eventbus

    //在main.js中引入
    import './eventbus'

    也可以不是有模块化开发,直接在main.js中引入

     1 //axios
     2 import axios from 'axios'   //引入axios
     3 Vue.prototype.$axios = axios;   //添加原型
     4 
     5 
     6 //cookie
     7 import cookie from 'vue-cookie'
     8 Vue.use(cookie)
     9 
    10 //eventbus
    11 var eventbus = new Vue()
    12 
    13 Vue.prototype.$eventbus = eventbus

     

    接下来就是router路由文件,创建router.js,写入

     1 import vue from 'vue';
     2 import vueRouter from 'vue-router';
     3 
     4 //将页面导入路由
     5 import index from './components/index.vue';
     6 
     7 vue.use(vueRouter);
     8 //设置路由规则
     9 const routes = [
    10     {
    11         path='/',
    12        component : index
    13     }  
    14 ]
    15 
    16 //mode 网址显示的样式  history默认 hash网址含# abstract 网址不变
    17 const router = new vueRouter({routes,mode:'history'})
    18 
    19 export defualt  router   //导出
    20 
    21 
    22 //在main.js中引入
    23 import router from './router.js';
    24 new Vue({
    25    router,
    26    ....
    27 }).$mount('#app')

    assets文件夹,公共样式、js、图片等,需要在main.js中引入

    1 //比如
    2 import './assets/css/reset.css';

    components文件用来存放组件

    router在页面的显示分为入口和出口

    入口是点击某个元素进行跳转,出口是在哪里显示

    1 //入口
    2 
    3 <router-link to='/'>点我跳转</router-link>
    4 
    5 //出口
    6 
    7 <router-view></router-view>

    当我们要使用vuex时,先使用命令进行安装

    1 cnpm i vuex -S

    在src下创建store.js

     1 import vue from 'vue';
     2 import vuex from 'vuex';
     3 
     4 //如果使用模块化
     5 import goods from './goods.js'
     6 
     7 vue.use(vuex);
     8 
     9 const store = new vuex.Store({
    10      modules:{
    11            g:goods     //将逻辑代码写入goods.js文件中
    12     }
    13 })
    14 
    15 export default store;
    16 
    17 //在main.js中引入
    18 import store from './store.js'
    19 
    20 new Vue({
    21    store,
    22    router,
    23    ......
    24 }).$mount('#app')

    用来存放store代码的goods.js

     const goods = {
         //  用来存放数据
          state:{
               a : 1
           },
         //用来直接修改state数据
          mutations:{
             add(state,payload){
                state.a = payload
             }
          },
         //用来编写逻辑
          actions:{
             //payload代表传过来的数据,context
              add(context,payload){
                 context.commit('add',1)
             }
          },
           //计算属性,具有缓存的特点
          getter:{
             
          }
    }

     然后在页面中调用actions控制mutation进行修改state

    1 created(){
    2     //获取state数据
    3     this.arr = this.$store.state.goods;
    4     //调用action
    5     this.$store.dispatch('add',this.arr);
    6     //也可以直接控制mutation
    7      this.$store.commit('add',this.arr);
    8 }

    vuex提供了几个辅助函数

    mapState在vue组件中用于快速接受state的数据

    mapMutations在vue组件中用于快速接收mutations中的数据

    mapActions在vue组件中用于快速接收actions中的数据

    mapGetters在vue组件中用于快速接收grtters中的数据

    //在页面中引入
     import {mapActions,mapMutations,mapGetters,mapState} from 'vuex'


    computed:
    {
      ...mapState({
         goods:(state)=>{
             return state.goods;
         } 
      })
      ...mapActions(['add'])     //和视图层的函数名要一致
      ...mapMutations(['add'])
      ...mapGetters(['add'])
    }
  • 相关阅读:
    rxjava rxandroid使用遇到的坑
    使用ARouter遇到的坑
    java(Android)跨Module调用对应类方法需求解决方案
    前端工程师技能之photoshop巧用系列第四篇——图片格式
    前端工程师技能之photoshop巧用系列第三篇——切图篇
    前端工程师技能之photoshop巧用系列第二篇——测量篇
    前端工程师技能之photoshop巧用系列第一篇——准备篇
    js中用tagname和id获取元素的3种方法
    MVC显示Base64图片
    在ASP.NET MVC应用程序中随机获取一个字符串
  • 原文地址:https://www.cnblogs.com/wayaoyao/p/11153993.html
Copyright © 2011-2022 走看看