从 0~1 创建 Vue2 项目

news2024/11/27 20:37:51

前言

  • 从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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用CV-CUDA提高基于计算机视觉的任务吞吐量

使用CV-CUDA提高基于计算机视觉的任务吞吐量 涉及基于 AI 的计算机视觉的实时云规模应用程序正在迅速增长。 用例包括图像理解、内容创建、内容审核、映射、推荐系统和视频会议。 然而&#xff0c;由于对处理复杂性的需求增加&#xff0c;这些工作负载的计算成本也在增长。 从…

凌恩生物文献分享|南农大胡锋教授团队揭示苯并[a]芘胁迫影响蚯蚓肠道病毒组生态适应策略机制

蚯蚓被誉为“土壤生态系统工程师”&#xff0c;对于土壤结构改良、有机质分解、土壤污染修复具有重要意义&#xff0c;同时蚯蚓也被作为评估污染物生态风险的灵敏指示者。蚯蚓肠道微生物对于蚯蚓生态功能的发挥至关重要&#xff0c;为了充分利用蚯蚓的生态和生物技术效益&#…

Python每日一练:蚂蚁家族(详解集合法)

文章目录 前言一、题目二、代码分析总结 前言 这题挺有意思&#xff0c;感觉评简单难度有点低了&#xff0c;如果正经用无向图来做&#xff0c;代码还是有点长的。首先得建立节点&#xff0c;估计除第一个和最后一个每个节点都是一条线连进&#xff0c;一条线连出的。就可以这…

对接银行处理退票的解决方案

什么是退票&#xff1f; 在跨行支付时&#xff0c;付款请求提交汇出行后&#xff0c;由汇出行转交至人民银行支付系统&#xff0c;经人民银行大小额系统处理后会先返回交易成功的结果&#xff0c;再由人民银行转至收款行&#xff0c;收款行在清算过程中会将收款人账户信息、状…

MyBatis--XxxxMapper.xml-SQL 映射文件和MyBatis--动态SQL 语句-更复杂的查询业务需求

目录 MyBatis--XxxxMapper.xml-SQL 映射文件 XxxMapper.xml-基本介绍 MyBatis 的真正强大 2、SQL 映射文件 XxxMapper.xml-详细说明 因为这是一个宁外开了一个项目所以做一下前期准备 Monster.java MonsterMapper接口 MonsterMapper .xml MonsterMapperTest.java jdbc…

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

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

【AI大模型】教你用百度《文心一言》5分钟写一篇博客

文章目录 前言文心一言是什么文心一言可以做什么文心一言写博客申请体验写在最后 前言 当今社会&#xff0c;博客已成为了许多人分享观点、知识和经验的重要平台。用文心一言写博客是将自己的思考、想法和经验以文字的形式呈现出来&#xff0c;让更多人了解自己。通过写博客&a…

量化因子在 DolphinDB 中的流式实现攻略

DolphinDB 是一款高性能分布式时序数据库。与传统的关系数据库和常见的时序数据库不同&#xff0c;DolphinDB 不仅提供了高速存取时序数据的基本功能&#xff0c;而且内置了向量化的多范式编程语言与强大的计算引擎。DolphinDB 的计算引擎不仅可以用于量化金融的回测和研发&…

Aztec 征集 Rollup Sequencer去中心化提案

1. 引言 前序博客&#xff1a; Rollup去中心化Rollup Decentralization Aztec Rollup中Sequencer角色的主要职责为&#xff1a; 1&#xff09;从mempool中选取pending交易2&#xff09;将选中的pending交易排序打包到L2区块中3&#xff09;验证所有private交易proof以检查其…

数据结构(C语言):递归算法删除链表中所有值为x的结点

一、一个递归算法的诞生过程 这个标题为什么要叫“一个递归算法的诞生过程”呢&#xff1f;因为我在写这个算法的时候可谓一波三折&#xff0c;冲破重重Bug最终才得到了正确的算法。 所以在这里我和大家分享一下我写这段代码的整个过程。其中提到的一些问题大家可能写代…

网络信息安全攻防学习平台CTF练习-基础篇

网络信息安全攻防学习平台 &#xff1a;http://hackinglab.cn/main.php 1、key在哪里&#xff1f; 进入环境之后&#xff0c;右击查看源代码&#xff0c;看到key再网页备注里面&#xff1a; 2、再加密一次你就得到key啦~ 根据提示信息&#xff0c;在加密一次就能得到key&#…

shell脚本----基础命令sort-tr-uniq-cut-split-paste-eval

文章目录 一、sort命令二、uniq命令三、 tr命令四、cut命令五、split命令六、paste命令七、eval命令 一、sort命令 sort命令以行为单位对文件内容进行排序&#xff0c;也可以根据不同的数据类型来排序&#xff0c;比较的原则是从首字符向后&#xff0c;一次按ASCII码的值进行比…

Mail.Ru邮箱注册教程

Mail.Ru 简介 Mail.Ru来自俄罗斯一家网络公司。该初始建立于1998年作为电子邮件服务&#xff08;因此而得名&#xff09;&#xff0c;并继续成为网络的俄语圈主要参与者&#xff0c;每月活跃用户达到俄罗斯网络用户的86&#xff05;&#xff0c;是俄罗斯最大的两家互联网企业之…

Java框架学习03(Spring中设计模式详解)

1、控制反转(IoC)和依赖注入(DI) IoC(Inversion of Control,控制反转) 是 Spring 中一个非常非常重要的概念&#xff0c;它不是什么技术&#xff0c;而是一种解耦的设计思想。 IoC 的主要目的是借助于“第三方”(Spring 中的 IoC 容器) 实现具有依赖关系的对象之间的解耦(IOC…

802. 找到最终的安全状态

class Solution { public:bool vis[40005];//vis[i]表示从节点i开始的所有可能路径是否可以到达终端节点vector<int>regraph[40005];map<int,int>mp;bool id_num[40005];bool dfs(vector<vector<int>>& graph,int st){if(mp[st] || vis[st])//如果…

内网渗透—域环境之信息收集

内网渗透—域环境之信息收集 1. 前言2. 关于域2.1. 域搭建2.2. 域渗透思路 3. 域信息收集3.1. 判断是否存在域3.1.1. 查询网络信息3.1.2. 查询当前登录域与域环境3.1.3. 判断主域 3.2. 查找域控制器3.2.1. 查询DNS地址3.2.2. 查看域控制器的机器名3.2.3. 查看域控制器 3.3. 获取…

媒体邀约之发布会彩排哪些内容和注意那些细节?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 相信发布会前小伙伴都会进行彩排&#xff0c;对发布会的细节&#xff0c;流程&#xff0c;各个工种如何配合进行提前的演练&#xff0c;那么发布会彩排哪些内容&#xff0c;要注意哪些细节…

Linux shell编程常用命令(sort排序 uniq重复行 set +-x调试脚本 tr压缩替换字符 cut切片 split拆分 paste合并文件列 eval扫描变量)

sort命令 排序 以行为单位对文件内容进行排序&#xff0c;也可以根据不同的数据类型来排序 比较原则是从首字符向后&#xff0c;依次按ASCII码值进行比较&#xff0c;最后将他们按升序输出。 sort [选项] 参数 cat file | sort 选项-n 按照数字进行排序 -r 反向排序 -u 等同于u…

[学习笔记]python的web开发全家桶(ing)

源学习视频 目的&#xff1a;开发一个平台(网站) 前端开发&#xff1a;HTML、CSS、JavaScriptWeb框架&#xff1a;接收请求并处理MySQL数据库&#xff1a;存储数据地方 快速上手&#xff1a; 基于Flask Web框架让你快速搭建一个网站出来。 深入学习&#xff1a; 基于Django…

Google Chrome谷歌浏览器崩溃,错误代码: STATUS_STACK_BUFFER_OVERRUN

前两天Edge浏览器崩溃&#xff0c;一通测试&#xff0c;最终解决。谷歌一直没更新&#xff0c;今天更新了下&#xff0c;也崩溃了。 错误代码: STATUS_STACK_BUFFER_OVERRUN 解决办法&#xff1a; 1、开始菜单搜索&#xff1a;ExploitProtection&#xff0c;打开进入。 2、切…