从 0~1 创建 Vue2 项目

前言

  • 从0开始搭建Vue2项目;
  • 介绍项目目录结构;
  • 为了项目方便需要添加的配置。
  • 创建 Vue2 项目共有两种方式:
    • 手动选择;
    • 选择默认模式。
  • 给孩子点点关注吧!😭
    image.png

一、环境准备

1.1 安装包管理工具

1.1.1 安装 NodeJS

  • 直接去 Node官方 下载安装即可;
  • 安装完成之后:
    // 运行命令查看Node是个否安装成功
    // 随便在哪里打开一个终端,查看 NodeJS 版本号,能看到版本号表示成功
    node -v
  • image.png
  • 安装NodeJS的时候,会自动集成npm包管理工具,此时就可以正常使用npm了;
  • 优化: 建议下载 nvm 进行Node版本管理,简单来说就是可以进行Node版本之间的切换(去问度娘,等我有新电脑了写一篇关于nvm的😂)。

1.1.1.1 npm相关命令:

```js
// 安装包
npm install <package_name>  // install 可以简写成 i

// 安装所有的包
npm i

// 全局安装包
npm install <package_name> -g  // 下面的简写
npm install <package_name> --global //两者均可

// 安装指定版本的包
npm install <package_name>@latest  // 默认就是这种格式(和 npm i xxx 一样) - 安装最新版
npm install <package_name>@版本号

// 卸载包
npm uninstall <package>

// 检查当前的下包镜像源
npm config get registry

// 将下包的镜像源切换为淘宝镜像源
npm config set registry http://registry.npm.taobao.org/

// 检查镜像源是否下载成功
npm config get registry
```

1.1.1.2 yarn 相关命令

  • 我自己是比较偏向于 yarn 的:
    // 全局安装 yarn
    npm i -g yarn
    
    // 检查是否安装成功(能看到版本号表示成功)
    yarn -v
    
    // 安装包
    // 会自动安装最新版本,并且会覆盖指定版本的包
    yarn add <package_name>
    
    // 安装指定版本的包
    yarn add <package_name>@版本号
    
    // 一次性安装多个包(包与包之间用空格隔开)
    yarn add <package_name> <package_name> <package_name>
    
    //不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型:
    yarn add <package_name> --dev / -D // 加到 devDependencies
    yarn add <package_name> --peer / -P // 加到 peerDependencies
    yarn add <package_name> --optional / -O  // 加到 optionalDependencies
    
    // 安装所有的包
    yarn
    
    // 更新包
    yarn upgrade <package_name>  // 更新到最新版本
    yarn upgrade <package_name>@版本号  // 更新到指定版本
    
    // 移除包
    yarn remove <package_name>
    
    // 查询当前设置的镜像
    yarn config get registry
    
    // 切换淘宝镜像
    yarn config set registry https://registry.npm.taobao.org
    

1.2 安装 @vue/cli 脚手架及配置环境变量

1.2.1 安装 @vue/cli

// 全局安装
yarn global add @vue/cli

// 查看是否安装成功
vue -V	// 成功之后会出现版本号 ( vue --version )

// 如果上述命令报错,就需要配置环境变量

1.2.2 配置环境变量

  • 终端(Win + R) 输入 yarn global bin ➡ 复制得到的路径 ➡ 鼠标右键此电脑(或计算机) ➡ 属性 ➡ 高级系统设置 ➡ 环境变量 ➡ 系统变量 下的 Path ➡ 编辑 ➡ 新建,粘贴复制的路径
  • 至此准备工作完成,开始创建项目。

二、手动选择创建Vue2项目及配置(推荐)

2.1 创建项目

  • //创建项目的命令
    vue create 项目名称
    
  • 运行命令选择创建模式:

    • image.png
    • 键盘上下键可以选择,选择好之后,按回车(下面就是按步骤开始);
  • image.png

  • image.png

  • 是否使用 history 路由模式:(是否无所谓,后面可以修改,见 3.2)

    • image.png
  • 选择要使用的CSS预处理器(建议选择Less)

    • image.png
  • 具体在项目中也可以选择对某个文件忽略检查或对直接禁用eslint

    • image.png
  • 选择额外的 lint 功能(Ctrl + S的时候检查代码是否符合规范)

    • image.png
  • 把第三方插件的配置选项放到那个配置文件中(建议选择 In dedicated config files,表示:独立的文件)

    • image.png
  • 是否把刚才所有的操作保存为预设,方便一次直接基于预设,一件生成项目(建议Y,如果是N,每次都要这样,很麻烦)

    • image.png
  • 如果上一步选择了 Y,就需要给预设提供一个名字(全英文):

    • image.png
  • 完成了,坐等项目生成,根据提示运行即可。
    +

2.2 添加配置

2.2.1 ESLint

  • 禁用ESLint:
    • 目标文件:vue.config.js
    • image.png
  • 对 功能模块 或 文件 禁用ESLint:
    • 功能模块:
      将以下代码放在功能模块的最前面
      /* eslint-disable no-eval */
      
      • image.png
    • 文件:
      将以下代码放在该文件的最前面
      /* eslint-disable no-eval */
      
      • image.png
  • 单行禁用ESLint:
    代码 // eslint-disable-line no-eval
    
    示例展示:
    import store from './store'  // eslint-disable-line no-eval
    

2.2.2 vue.config.js 文件配置

  • 配置 端口、host、是否自启动等;
    module.exports = {
        devServer: {
            // 端口号
            port: 8080,
            // 基本不同配置,了解即可
            host: 'localhost',
            // 是否自启动
            open: true
        }
    }
    

2.2.3 路由配置

  • 改变路由模式:
    • src/router/index.js
    • mode有两个属性值(字符串):
      • hash:地址栏有#号(开发环境的选择)
      • history:地址栏无#号(上线打包的选择)
    • image.png

三、选择默认模式及配置(太麻烦,不推荐)

  • 没开始学路由的时候,可能会选择这种。

3.1 创建项目

  • 运行命令,选择标红的,回车就会创建项目。

    • image.png
  • 这个项目没有router、store,需要自己下载模块,自己配置。

3.2 添加配置

3.2.1 路由配置

  • 安装 router:
    • yarn add vue-router@3.5.3
    • vue-router版本太高会报错在Vue2项目中:
      • image.png
      • 只需重新安装即可。
  • src 下,新建 router 文件夹,新建 index.js 文件:
    • 完整代码:
      import Vue from 'vue'
      
      // 1.下载包:yarn add vue-router@4
      
      // 2.导入vue-router包
      import VueRouter from 'vue-router'
      
      // 3.注册
      // vue.use(插入对象):给Vue增强能力
      // 一旦注册了路由了插件,会给Vue提供两个全局组件和两个全局对象
      // 全局组件:RouterLink 和 RouterView
      // 全局对象:$route 和 $router
      Vue.use(VueRouter)
      
      // 4.创建路由规则数组
      // 配置path和component的对应关系
      // Vue中路由是指:路径(path)和组件(component)的映射关系(不同路径对应不同的组件)
      import Find from '@/views/Find.vue'
      import My from '@/views/My.vue'
      
      const routes = [
        {
          path: '/',
          // 重定向
          redirect: '/find'
        },
        {
          // 属性名是固定写法
          path: '/find',    // /标识根路径,不能丢
          component: Find   // 页面组件
        },
        {
          path: '/my',
          component: My
        }
      ]
      
      // 5.创建路由实例
      const router = new VueRouter({
        // 属性名固定:routes
        routes,
        // 自配置激活类名
        linkActiveClass: 'on-active',
        linkExactActiveClass: 'off-active'
      })
      
      // 6.导出 router,在main.js中引入,加入到new Vue的配置项中
      export default router
      
  • main.js 中注入:
    • 完整代码:
      import Vue from 'vue'
      import App from './App.vue'
      
      // 导入 router
      import router from '@/router'
      
      Vue.config.productionTip = false
      
      new Vue({
        // 6.注入
        router,
        render: h => h(App),
      }).$mount('#app')
      
      // 注入之后,就是在对应的页面给路由出口
      // 7.给出口 回到App.vue中 给一级路由添加出口
      // <router-view></router-view>(标签名也可以写成大驼峰命名法)
      

3.2.2 store 配置

  • 安装: yarn add vuex@next --save

  • 新建文件:

    • src 下,新建 store 文件夹:
      • 新建 index.js 文件;
        • index.js`完整代码:
          import Vue from 'vue'
          import Vuex from 'vuex'
          
          // 导入 modules 文件夹下的模块
          import goodsList from './modules/goodsList'
          import userInfo from './modules/userInfo'
          
          // 导入 getters文件
          import getters from './getters'
          
          Vue.use(Vuex)
          
          const store = new Vuex.Store({
            modules: {
              goodsList,
              userInfo
            },
            getters
          })
          
          export default store
          
      • 新建 modules 文件夹;
        • 建立对应的模块文件;
        • 示例展示:
          • 新建两个模块 goodsListuserInfo(基本代码一致);
          • 代码展示:
            const store = {}
            
            const mutations = {}
            
            const actions = {}
            
            export default {
              // 开启命名空间
              namespaced: true,
              store, 
              mutations,
              actions
            }
            
      • 新建 getters.js 文件
        • 完整代码:
          const getters = {
            // 建立一些快捷访问
          }
          
          export default getters
          
  • main.js 中导入 store 并 注入 到 new Vue()的配置项中:

    • 完整代码:
      import Vue from 'vue'
      import App from './App.vue'
      
      // 导入 router
      import router from '@/router'
      
      // 导入 store
      import store from '@/store'
      
      Vue.config.productionTip = false
      
      new Vue({
        // 注入
        router,
        store,
        render: h => h(App),
      }).$mount('#app')
      
  • 项目配置基本完成。

3.2.3 其他配置

  • 也就是 ESLint 、 vue.config.js 、路由 的配置了,和手动选择创建项目时一致。

四、项目目录介绍

  • image-20220920201420690.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/18688.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7安装MySQL

CentOS默认安装有MariaDB&#xff0c;这是MySQL的分支。 但还是要在系统中安装MySQL&#xff0c;且安装完成后可直接覆盖MariaDB。 1、下载并安装MySQL官方 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面命令就…

VS Code 常用插件推荐

VS Code 常用插件推荐 1. Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code 适用于 VS Code 的中文&#xff08;简体&#xff09;语言包 2. Auto Rename Tag 自动关闭标签&#xff0c;写 html 标签的时候可以重命名标签名。 现在 vscode 已经内置了&…

分享2个教学视频录制的方法!

案例&#xff1a;如何录制教学视频&#xff1f; 【我是一名老师&#xff0c;我想录制一些教学视频发布在网络平台上&#xff0c;但是我不知道如何操作。有没有人知道录制教学视频需要什么工具&#xff1f;如何录制&#xff1f;】 随着在线教育的普及&#xff0c;越来越多的教…

三位一体,铸就无敌铁军!海陆空协同,开启集群新篇章!

在机器人领域&#xff0c;多机器人系统的研究一直是一大热点&#xff0c;众多高校与研究所逐步投入到机器人集群系统的研究当中&#xff0c;其中无人机编队表演、无人车群园区运输、无人船集群水域监测等集群应用更是进入了大众的视野。但对多机器人集群系统的需求却远不止于此…

KD305Y带吸收比极化指数兆欧表

一、概述 KD305Y绝缘电阻测试仪对众多的电力设备如&#xff1a;电缆、电机、发电机、变压器、互感器、高压开关、避雷器等要求做一系列的绝缘性能试验&#xff0c;首先是要做绝缘电阻测试。近年来随着电力事业的飞速发展,大容量设备的使用不断增加&#xff0c;用普通的兆欧表无…

idm下载器2024官方最新中文版免费下载

哈喽大家好呀&#xff0c;coco玛奇朵发现我已经有一阵子没有给大家分享windows软件了&#xff0c;今天给大家分享一款暗藏惊喜的windows软件&#xff0c;用过之后真的很难拒绝&#xff01; 这是一个可以帮你提升下载速度的工具&#xff0c;有了它几秒就能帮你下载好各种资源。…

Ubuntu 增加swap交换内存

一、创建虚拟内存 在实际开发中发现swap交换分区不够用了&#xff0c;于是需要创建虚拟内存来增加交换分区的大小。 在系统空闲空间位置创建swap虚拟内存专用文件夹 cd /data //切到你想要创建交换分区的目录 mkdir swap //新建文件夹swap cd swap //进入swap文件夹 备…

el-table多级嵌套列表,菜单使用el-switch代替

需求&#xff1a;根据el-table实现多级菜单复选&#xff0c;并且只要是菜单就不再有复选框&#xff0c;也没有全选按钮&#xff0c;一级菜单使用el-switch代替原有的列复选框&#xff0c;子级如果全部选中&#xff0c;那么父级的el-switch也会被选中&#xff0c;如下图&#xf…

亿发工业互联网智能制造ERP系统,生产工厂信息化建设解决方案

亿发工业互联网智能制造ERP系统&#xff0c;生产工厂信息化建设解决方案 随着制造水平的发展&#xff0c;传统工厂原有的生产组织模式和质量管理模式已不能满足先进制造水平的要求。确保公司战略目标的实现&#xff0c;有必要借助信息技术加强对各种业务流程的管理。而企业走向…

10个最流行的向量数据库【AI】

矢量数据库是一种将数据存储为高维向量的数据库&#xff0c;高维向量是特征或属性的数学表示。 每个向量都有一定数量的维度&#xff0c;范围从几十到几千不等&#xff0c;具体取决于数据的复杂性和粒度。 推荐&#xff1a;用 NSDT场景设计器 快速搭建3D场景。 矢量数据库&…

FE_Vue框架的重要属性讲解【ref props mixin】

1 ref属性 对于传统的HTML而言&#xff0c;id 和 ref确实没有什么差别&#xff0c;但是对于组件来说就不一样了。给组件加id&#xff0c;打印出获取的结果为组件所对应的完整DOM结构。给组件加ref&#xff0c;打印出获取的结果就是VueComponent实例。 被用来给元素或子组件注册…

软考A计划-重点考点-专题十(算法分析与设计)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

【sop】基于灵敏度分析的有源配电网智能软开关优化配置[升级1](Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

剑指 Offer 34. 二叉树中和为某一值的路径

题目描述&#xff1a; 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 题目来源 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,nul…

mac iterm2设置rz sz文件传输

1、安装lrzsz $ brew install lrzsz 2、创建并设置iterm2-send-zmodem.sh sudo vim /usr/local/bin/iterm2-send-zmodem.sh # /usr/local/bin/iterm2-send-zmodem.sh#!/bin/bash # Author: Matt Mastracci (matthewmastracci.com) # AppleScript from http://stackoverflow.com…

Cy5.5-PEG2000-Biotin,Cy5.5-聚乙二醇-生物素;Biotin-PEG-Cy5.5;可用于检测抗生物素、链霉亲和素或中性生物素

Cyanine5.5-PEG-Biotin&#xff0c;Cy5.5-聚乙二醇-生物素 中文名称;Cy5.5-聚乙二醇-生物素 英文名称;Cyanine5.5-PEG-Biotin 性状&#xff1a;粘稠液体或固体粉末&#xff0c;取决于分子量大小 溶剂&#xff1a;溶于水、氯仿、DMSO等常规性有机溶剂 分子量PEG:1k、2k、3.…

高薪Android开发工程师面试题必备!

5-6月各种补招和散招才是招聘高峰&#xff0c;也是拿offer的高峰&#xff0c;机会多多。 悲观者往往正确&#xff0c;但乐观者往往成功。不要制造焦虑吓自己。 多为面试准备准备&#xff0c;机会多多也要把握住&#xff01; 以下都是一线互联网大厂最常见的几个问题&#xf…

文件上传漏洞详解

0x01 上传漏洞定义 文件上传漏洞是指用户上传了一个可执行的脚本文件&#xff0c;并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的&#xff0c;“文件上传”本身没有问题&#xff0c;有问题的是文件上传后&#xff0c;服务器怎么处理、解释文件…

MySQL索引

目录 一、索引的概述二、索引的作用2.1 索引是如何实现&#xff1f;2.2 使用索引的副作用 三、创建索引的原则依据四、MySQL的优化哪些字段/场景适合创建索引&#xff1f;五、索引的分类及创建5.1 普通索引直接创建索引修改表方式创建创建表的时候指定索引 5.2 唯一索引直接创建…

2023 年第三届长三角高校数学建模 A 题 快递包裹装箱优化问题

2022 年&#xff0c;中国一年的包裹已经超过 1000 亿件&#xff0c;占据了全球快递事务量的一 半以上。近几年&#xff0c;中国每年新增包裹数量相当于美国整个国家一年的包裹数量&#xff0c; 十年前中国还是物流成本最昂贵的国家&#xff0c;当前中国已经建立起全世界最强大、…