• Vue项目开发流程(自用)


    一、配置开发环境

    1.1 安装Node.js

      npm集成在Node中,检查是否安装完成:node -v

    1.2 安装cnpm(淘宝镜像)

      npm install -g cnpm,检查安装是否完成:cnpm -v

    1.3 安装Vue脚手架

      cnpm install -g vue-cli

    1.4 项目初始化

      vue init webpack vue-project

    二、明确目录结构

    ├── README.md                 项目介绍
    ├── index.html                入口页面
    ├── build                     构建脚本目录
    │  ├── build-server.js        运行本地构建服务器,可以访问构建后的页面
    │  ├── build.js               生产环境构建脚本
    │  ├── dev-client.js          开发服务器热重载脚本,主要用来实现开发阶段的页面自动刷新
    │  ├── dev-server.js          运行本地开发服务器
    │  ├── utils.js               构建相关工具方法
    │  ├── webpack.base.conf.js   wabpack基础配置
    │  ├── webpack.dev.conf.js    wabpack开发环境配置
    │  └── webpack.prod.conf.js   wabpack生产环境配置
    ├── config                    项目配置
    │  ├── dev.env.js             开发环境变量
    │  ├── index.js               项目配置文件
    │  ├── prod.env.js            生产环境变量
    │  └── test.env.js            测试环境变量
    ├── mock                      mock数据目录
    │  └── hello.js   
    ├── package.json              npm包配置文件,里面定义了项目的npm脚本,依赖包等信息
    ├── src                       源码目录  
    │  ├── main.js                入口js文件
    │  ├── app.vue                根组件
    │  ├── components             公共组件目录
    │  │  └── title.vue
    │  ├── assets                 资源目录,这里的资源会被wabpack构建
    │  │  └── images    
    │  │    └── logo.png    
    │  ├── router                 前端路由
    │  │  └── index.js    
    │  └── views                  页面目录(新建文件夹)
    │    ├── components           页面组件
    │    ├── hello.vue            页面
    │    └── notfound.vue   
    ├── static                    纯静态资源,不会被wabpack构建。
    └── test                      测试文件目录(unit&e2e)
      └── unit                    单元测试
        ├── index.js              入口脚本
        ├── karma.conf.js         karma配置文件
        └── specs                 单测case目录
          └── Hello.spec.js 

    三、安装依赖(根据项目所需补充)

    3.1 在组件中使用less

      安装:cnpm i --save-dev less less-loader style-loader

    3.2 使用方式:

    <style lang="less" scoped>
    //外部导入(也可以直接编写less)
    @import url("../assets/less/index.less");
    </style>

    四、引入插件(以bootstrap为例)

    4.1 直接在入口页面index.html中引入,文件存放在static静态资源文件夹(避免了jquery和bootstrap文件引入先后问题)

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <script src="./static/js/jquery.min.js"></script>
        <script src="./static/js/bootstrap.min.js"></script>
        <link rel="stylesheet" href="./static/css/bootstrap.min.css">
        <title>vue实例</title>
      </head>
      <body>
        <div id="app"></div>
        <!-- built files will be auto injected -->
      </body>
    </html>

    五、使用axios获取数据

    5.1 安装axios

      cnpm i --save-dev axios

    5.2 配置config/index.js(可以解决跨域问题)

    proxyTable: {
          '/api': {
            target: 'https://api.douban.com',//设置你调用的接口域名和端口号
            changeOrigin: true,
            pathRewrite: {
              '^/api': ''//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'https://api.douban.com/user/add',直接写‘/api/user/add’即可
            }
          }
        }

    5.3 调用

    5.3.1 在需要使用http请求的页面导入

    import axios from 'axios'

    5.3.2 get请求:

    export default {
      name: "index",
      data() {
        return {
          info: null
        };
      },
      methods: {
        getData() {
          axios
            .get("/api/v2/movie/in_theaters")
            .then(res=> {
              this.info = res.data;
            })
            .catch(err=> {
              console.log(err);
            });
        }
      }
    };

    5.3.3 post请求(示例,找不到post开放接口):

    export default {
      name: "index",
      props: [],
      data() {
        return {
          info: null
        };
      },
      methods: {
        getData() {
          axios
            .post("/api/v2/movie/in_theaters",{
              params: {//传参
                page: 1,
                count: 20
              }
            })
            .then(res=> {
              this.info = res.data;
            })
            .catch(err=> {
              console.log(err);
            });
        }
      }
    };

    六、Vue文件导入

    配置build/webpack.base.conf.js,添加匹配规则:

    {
        test: /.vue$/,
        loader: 'vue-loader',
        options: vueLoaderConfig
    }

    持续更新。。。。。

    转载于:https://www.cnblogs.com/zgdawdl/p/10509057.html

  • 相关阅读:
    Spring创建复杂对象
    navicat中mysql中文数据显示乱码
    cmd黑窗口查询数据库中数据时中文乱码
    springboot中的文件上传与下载
    springboot中定义拦截器
    springboot中的AOP开发
    springboot集成logback日志
    开启springboot中对jsp页面修改后的热部署
    IntelliJ Idea中常用快捷键(持续更新中)
    jsp页面中格式化展示日期
  • 原文地址:https://www.cnblogs.com/twodog/p/12135065.html
Copyright © 2020-2023  润新知