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'])
    }
  • 相关阅读:
    mysql常用基本命令
    mysql8.0.13下载与安装图文教程
    k8s ingress 增加跨域配置
    Jenkins 备份恢复插件 thinBackup 使用
    k8s HA master 节点宕机修复
    nginx 跨域问题解决
    mongodb 3.4.24 主从复制
    k8s 线上安装 jenkins并结合 jenkinsfile 实现 helm 自动化部署
    k8s helm 运用与自建helm仓库chartmuseum
    centos6 源码安装 unzip
  • 原文地址:https://www.cnblogs.com/wayaoyao/p/11153993.html
Copyright © 2011-2022 走看看