vue2,Vue3脚手架搭建,接口封装,代理服务器配置,vuex仓库,请求拦截器配置。

vue2脚手架搭建项目:

创建一个vue项目:

1,全局安装vue命令行模块 vue-cli

npm install vue-cli -g

注意:vue-cli 依赖于webpack,在使用vue-cli之前,先安装webpack

npm install webpack -g

2**,创建项目文件夹,并在这个文件夹下打开命令行**

**3,初始化一个vue项目 **

vue init webpack

注意: 其中Eslint 选项是代码格式校验工具, 要选择NO ,否则会以严格模式校验代码,

如: 注释//后必须有且只有一个空格, 否则会报错

4,下载安装所有的依赖项

npm install

5,启动项目

npm run serve

在vue项目根目录下,index.html就是项目的首页,其他文件是项目的各种配置文件。

static文件夹,是存储静态资源文件的静态文件夹(类似于express项目中的public)

src文件夹,是存储项目源代码的文件夹(类似express项目中的bin),所有前端的代码文件都存储在src中。

build文件夹,用于存放webpack项目打包的配置文件。

config文件夹,存放服务器的配置文件。

除了src文件夹,其他文件夹中的内容基本不用修改。

开发vue项目,主要就是在src中写代码。

6,当项目完成时,如何打包发布?

(1)打包:项目开发完成之后,代码行执行命令

npm run build

编译并重新构建项目,然后在项目目录下生成一个 dist 文件夹

(2)发布: 只需要将dist文件夹中的所有内容复制到服务器(IIS / node / apache)的静态文件夹中即可

总结几种服务器的创建和启动方式

1, 基础服务器 npm init 初始化 node index 启动

2, express项目生成器 express myProject 初始化 npm start 启动

3, vue1.x/2.x项目框架 vue init webpack 初始化 npm run dev 启动

4, vue3.x项目框架 vue create project-name 初始化 npm run serve 启动

5, react项目框架 create-react-app my-app初始化 npm start 启动

6, angular框架项目 ng new app-name初始化 ng serve 启动

vue3脚手架搭建项目

一、安装 @vue/cli 脚手架

npm install -g @vue/cli

安装完成后,可以使用 vue -V (这个 V 是大写的)查看版本号

注意:@vue/cli 依赖于webpack,在使用之前,先安装webpack

npm install webpack -g

二、创建项目

vue create project-name

这里的 project-name 是自定义的项目名称,命令执行之后,会生成对应文件夹

三, 项目生成之后,已经自动安装了相关的依赖项,这时候可以直接启动项目:

npm run serve

四, 完成以上步骤之后,就已经可以开发 vue 项目了,但无法满足定制化的开发需求

这时候就需要在根目录手动创建一个 vue.config.js

// vue.config.js

module.exports = {

  publicPath:'/',    // 启动页地址

  outputDir: 'dist', // 打包的目录

  lintOnSave: true, // 在保存时校验格式

    productionSourceMap: false, // 生产环境是否生成 SourceMap

    devServer: {

      open: true, // 启动服务后是否打开浏览器

      host: '0.0.0.0',

      port: 8080, // 服务端口

      https: false,

      hotOnly: false,

      proxy: null, // 设置代理

      before: app => {}

    },

}

五 ,当项目完成时,如何打包发布?

(1)打包:项目开发完成之后,代码行执行命令

npm run build

编译并重新构建项目,然后在项目目录下生成一个 dist 文件夹

(2)发布: 只需要将dist文件夹中的所有内容复制到服务器(IIS / node / apache)的静态文件夹中即可参考文档:https://www.cnblogs.com/wisewrong/p/9740173.html

请求封装(练习小dem)。

// 导入请求插件
import axios from 'axios'


// 执行ajax-get请求的函数
function getRequest(url, params){
    return new Promise(resolve=>{
        axios.get(url,{params}).then(res=>{
            resolve(res.data)
        })
    })
}

// 执行ajax-post请求的函数
function postRequest(url, params){
    return new Promise(resolve=>{
        axios.post(url,params).then(res=>{
            resolve(res.data)
        })
    })
}

// 获取商品列表
function getGoodlist(params){
    return getRequest("/myApi/goodlist", params)
}
// 登录
function doLogin(params){
    return getRequest("/myApi/login", params)
}
// 注册
function doRegister(params){
    return getRequest("/myApi/register", params)
}
// 一级分类标题
function getTypeOneList(params){
    return getRequest("/myApi/getTypeOne", params)
}

// 搜索商品
function getSearch(params){
    return getRequest("/myApi/search", params)
}

// 获取商品详情
function getDetail(params){
    return getRequest("/myApi/detail", params)
}

// 同店相似商品推荐
function getSameGoods(params){
    return getRequest("/myApi/sameList", params)
}

// 获取购物车数据
function getCartList(params){
    return getRequest("/myApi/shopList", params)
}

// 购物车商品数量增加/添加购物车
function getCartAdd(params){
    return getRequest("/myApi/add", params)
}

// 购物车商品数量减小
function getCartRemove(params){
    return getRequest("/myApi/remove", params)
}

// 删除购物车商品
function getCartDelete(params){
    return getRequest("/myApi/del", params)
}

// 获取轮播图图片地址
function getBannerUrl(params){
    return getRequest("/myApi/banner", params)
}


// 把请求数据的函数导出
export {
    doLogin,
    doRegister,
    getGoodlist,
    getBannerUrl,
    getTypeOneList,
    getSearch,
    getDetail,
    getSameGoods,
    getCartList,
    getCartAdd,
    getCartRemove,
    getCartDelete
}

请求拦截器,vuex参考:

vue 请求拦截器配置_攻城狮超超的博客-CSDN博客

路由配置参考:

vue二级路由配置_攻城狮超超的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/CCKing7/article/details/129668996