zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Zend Framework 2.1.5 中根据服务器的环境配置调用数据库等的不同配置
    在基于 Eclipse 的 IDE 中安装和使用 Emmet(ZenCoding)
    【翻译】Emmet(Zen Coding)官方文档 之六 自定义 Emmet
    【翻译】Emmet(Zen Coding)官方文档 之二 缩写
    【翻译】Emmet(Zen Coding)官方文档 之七 一览表
    【翻译】Emmet(Zen Coding)官方文档 之三 CSS 缩写
    【翻译】Emmet(Zen Coding)官方文档 之四 动作
    【翻译】Emmet(Zen Coding)官方文档 之一 web 编程的必备工具
    Zend Framework 2 时区设置警告问题的解决
    【翻译】Emmet (Zen Coding) 元素类型
  • 原文地址:https://www.cnblogs.com/twodog/p/12135065.html
Copyright © 2011-2022 走看看