Template -- Vue2

Vue2

版本

  • Node 14.14.0
  • Npm 6.14.8
  • Vue @vue/cli 5.0.3
    • npm install -g @vue/cli@5.0.3
  • cnpm cnpm@7.1.0
    • npm install -g cnpm@7.1.0 --registry=https://registry.npm.taobao.org

项目

创建

vue create single         # vue 2.6.14

配置

// vue.config.js
const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({
    transpileDependencies: true,
    lintOnSave: false,      // 暂时关闭 eslint
    assetsDir: 'static',    // 静态资源打包存储文件夹
    devServer: {
        port: 3030, //端口号
        open: true, //自动打开浏览器
    }
});

环境区分

  • vue.config.js 同级创建文件
  • .env.test
NODE_ENV = "test"
VUE_APP_TITLE = "测试"
VUE_APP_URL = "test"
  • .env.production
NODE_ENV = "production"
VUE_APP_TITLE = "生产"
VUE_APP_URL = "production"
  • index.html
<title> <%= process.env.VUE_APP_TITLE %></title>
  • package.json
{

  "private": false,
  "scripts": {
    "serve": "vue-cli-service serve --mode test",
    "serve1": "vue-cli-service serve --mode production",
    "build": "vue-cli-service build --mode test",
    "build1": "vue-cli-service build --mode production",
    "lint": "vue-cli-service lint"
  }
}

UI

cnpm install element-ui@2.15.14
  • main.js
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

Sass / Scss

cnpm install node-sass@6.0.0 --save-dev
cnpm install sass-loader@11.1.0 --save-dev
cnpm install style-loader@3.3.4 --save-dev
  • 使用
<style lang="scss">
.iiii{
  .sss{
    color: red;
  }
}
</style>

axios

  • src/http/index.js
import axios from "axios";

let service = axios.create({
  // baseURL: "https://cnodejs.org/api/v1", //相同绝对路径
  baseURL: process.env.VUE_APP_URL, //相同绝对路径
  timeout: 100000, //超过这么多时间,则请求终止
  headers: {
    //请求头携带数据的格式
    "Content-Type": "application/json;charset=UTF-8",
    // "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
  },
});
// 添加请求拦截器(Interceptors)
service.interceptors.request.use(
  function (config) {
    // 发送请求之前做写什么
    let token = localStorage.getItem("token");
    // 如果有
    if (token) {
      // 放在请求头(token跟后端沟通,他需要什么该成什么就可以了)
      config.headers.authorization = token;
    }
    return config;
  },
  function (error) {
    // 请求错误的时候做些什么
    return Promise.reject(error);
  }
);
// 添加响应拦截器
service.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    return response.data;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default service;
  • src/http/api.js
import request from "./index";

export async function Ceshi(params) {
    return request({
      url: "/topics",
      method: "GET",
      params,
    });
  }
  export async function Ceshi2(data) {
    return request({
      url: "/Storage/GetStorageLack",
      method: "POST",
      data,
    });
  }
  • 使用
<script>
import { Ceshi } from "@/http/api";
export default {
  async created() { 
    var a = await Ceshi();
    console.log(a);
  },
};
</script>

router

cnpm i vue-router@3 
  • src/router/index.js
import Vue from "vue";
import Router from "vue-router";

Vue.use(Router);

//配置路由
const router = new Router({
  // mode: "history",
  mode: "hash",
  routes: [
    {
      path: "/",
      name: "Cs",
      component: () => import("@/view/c.vue"),
    },
  ],
});

//导出
export default router;
  • main.js
import router from './router'

new Vue({
  render: h => h(App),
  router
}).$mount('#app')
  • App.vue
<router-view></router-view>

vuex

cnpm install vuex@3
  • src/store/modules/c1.js
export default {
  namespaced: true,
  state: {
    c1: [
      {
        id: "01001",
        name: "如何",
      },
      {
        id: "01002",
        name: "如何学好编程",
      },
    ],
  },
  mutations: {},
  actions: {},
};

  • src/store/index.js
import Vue from "vue";
import Vuex from "vuex";
import c1 from "./modules/c1";

Vue.use(Vuex);

export default new Vuex.Store({
  modules: {
    c1: c1,
  },
  state: {
    id: "01",
  },
  mutations: {},
});
  • main.js
import store from './store'
new Vue({
  render: h => h(App),
  store
}).$mount('#app')

Vue2 多模块打包

  • .env.test
MODEL_NAME = "test"
  • .env.production
MODEL_NAME = "test1"
  • vue.config.js
let modelName = process.env.MODEL_NAME || "";
let outputDir = modelName ? `dist/${modelName}/` : "dist/";
const config = {
  test: {
    pages: {
      index: {
        filename: "index.html",
        entry: "src/main.js",
        template: "public/index.html"
      }
    },
    devServer: {
      port: 3032, //端口号
      open: true, //自动打开浏览器
    }
  },
  test1: {
    pages: {
      index: {
        filename: "index.html",
        entry: "src/main.js",
        template: "public/index.html"
      }
    },
    devServer: {
      port: 3030, //端口号
      open: true, //自动打开浏览器
    }
  },
};

const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({
    transpileDependencies: true,
    lintOnSave: false, //暂时关闭 eslint
    ...config[modelName],
    outputDir: outputDir,       // 项目输出目录
    assetsDir: 'static'
});
  • 38
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索全栈前端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前端探索之旅,让每一个网页都成为技术与艺术的完美融合!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值