创建基于Vue2.0开发项目的两种方式

news2024/11/18 3:49:33

  前天开始接触基于Vue2.0的前端项目,实际操作中肯定会遇到一些问题,慢慢摸索和总结。
  其实,作为开发一般企事业单位应用的小项目,前端的懂一点HTML+CSS+JavaScropt+JQuery+Json(或者Xml),后端懂一点PHP、Jsp(或者Servlet)、Asp.net等,掌握这些就足够了。
  但是,如果要开发大一点、正规一些的项目,还是要应用主流的开发技术。
  大概2000年的时候,我认识一个写VC++程序的朋友,他给我说要到北京去发展,当时我问他ODBC方面的内容,他竟然不知道ODBC,我当时真是惊叹,北京可是技术高精尖人才扎堆的地方,他这水平能立足吗?!
  可是,仅仅过了3年,他就当上了他们公司开发部的经理。当时听说后,想起我仍然在单位拿着2000多一点的工资,只能无奈地感叹。
  前端依赖以前的框架比如JQuery、LayUI、EaseUI等基本上是通过静态引用,原理简单清晰,使用EAMCScript5语言,略微懂点前端技术的人就可以胜任开发工作,进阶的难度也不大。
  现在的项目基于EAMCScript6、组件化、Node.JS、npm、Webpack等,与以前相比,不仅仅是语法的不同,项目创建、开发、理念等发生了很大的变化。

  ⑴ 项目创建
  ●以前的项目:创建一个项目目录,在该目录下创建资源目录、JS目录、发布目录,将需要的文件拷贝到相应的目录就可以进行开发了。
  ●现在的项目:依赖管理、组件的版本控制复杂,手工创建就麻烦一些,一般通过框架的脚手架来进行项目创建。

  ⑵ 项目开发
  ●以前的项目:通过普通的记事本编辑器编辑代码即可,编写完代码直接拷贝到发布目录。在其他编辑器里编写代码,安装的插件不多,就是语法提示、测试单元等。
  ●现在的项目:开发一般不会在简易的记事本里开发了,需要在适用于前端开发编辑器如VSCode、HBuilder X、IDEA中进行,这些编辑器中可以安装众多利于开发的插件,依赖于配置,编辑器和组件可以帮助我们完成一系列的开发、测试、打包、部署工作。

  ⑶ 项目运行
  ●以前的项目:在开发测试、部署运行大多在Apache(PHP)、Tomcat(JSP)、IIS(ASP.Net)等web服务器中运行,前端代码基本上都在用户的浏览器端运行,服务器端优化的内容并不多。
  ●现在的项目:开发测试的手段比较多,使用独立的Web服务器中运行,也可以是在以插件方式运行于编辑器的web服务器(轻量级),实际部署运行也是在Apache、Tomcat等web服务器中运行,可是优化的内容就多了,因为很多代码是基于Node.JS,是在服务器端运行的。

  一、通过Vue脚手架创建Vue2.0的开发项目
  ⑴ 安装Node.JS。
  《node.js(1):初体验》
  安装包的下载地址
  ⑵ 安装Vue-cli
  Vue-CLI 是一个官方提供的命令行工具,俗称脚手架,用于快速创建 Vue项目。在终端中输入以下命令安装 Vue-CLI:

npm install -g @vue/cli

  ⑶ 创建项目
  在终端中进入你想要创建项目的目录,执行创建项目的命令:
  vue create my-app
  ⑷ 选择项目属性
  我使用Vue-CLI v5.0.8,只需要选择Vue版本即可创建。

Vue CLI v5.0.8
? Please pick a preset: (Use arrow keys)
> Default ([Vue 3] babel, eslint)       
  Default ([Vue 2] babel, eslint)       
  Manually select features

  移动光标到【Default ([Vue 2] babel, eslint)  】,按下回车即可。
  ⑸ 编写代码
  可以根据的需要编写代码。
  ⑹ 运行测试

npm run serve

  ⑺ 发布项目

npm run build

  结果显示图:


 

  虽然使用Vue脚手架就可以方便快捷地创建Vue项目,并且Vue CLI Service提供了许多的功能和开发体验,但是现在很多情况下,大多数开发者都使用npm结合webpack创建项目。
  首先,Vue CLI Service的很多定制化的配置也是基于Webpack的使用。
  其次,webpack是一个通用的模块打包器,它可以处理许多不同类型的资源,并且可以与许多其他框架和库一起使用。
  此外,使用npm和webpack可以提供更好的控制和定制化能力。webpack提供了许多插件和加载器,可以方便地扩展和定制打包过程。npm则可以方便地管理和发布模块以及处理项目的依赖关系。

   二、通过npm和webpack手工创建Vue2的开发项目

  ⑴ 安装Node.JS。
  《node.js(1):初体验》

  ⑵ 创建项目文件夹

  例如在磁盘上创建Vue目录并进入该目录。

  ⑶ 使用npm初始化

npm init -y

  ⑷ 安装Vue和相关依赖

npm install vue@2.6.12 webpack webpack-cli webpack-dev-server vue-loader vue-template-compiler css-loader style-loader --save-dev

  ⑸ 创建项目结构及文件

  在Vue目录下创建src目录,并在其中建立main.js和App.vue文件(文件内容为空)。

  在Vue目录下创建index.html和webpack.config.js文件(文件内容为空)。

  其中,src 文件夹存放JavaScript文件和Vue组件,index.html是项目的入口 HTML 文件,webpack.config.js是 webpack 的配置文件。

  ⑹ 编写代码

  ● main.js

import Vue from 'vue'
import App from './App.vue'

new Vue({
  el: '#app',
  render: h => h(App)
})

  ● App.vue

<template>
  <div>
    <h1>Hello, World!</h1>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style>
h1 {
  color: red;
}
</style>

  ● index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My Vue App</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="bundle.js"></script>
  </body>
</html>

  ⑺ 配置webpack

const path = require('path')
const VueLoaderPlugin = require('vue-loader/lib/plugin')

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      },
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
}

  ⑺ 测试

npm run serve

  ⑻ 发布打包

npm run build


  三、可能遇到的问题及解决办法

  vue create myapp,项目创建失败

  ⑴ Vue下载不完全,删除后重新创建

  ⑵ Vue的执行权限受限,改变权限

 

  四、疑问及解释

  ⑴ npm install -g @vue/cli,为什么要加@符号?

  在npm中,以@符号开头的包名表示这个包是一个作用域包(scoped package)。@vue/cli就是Vue.js官方提供的作用域包,用于安装Vue.js的命令行工具。通过在包名前加上@符号,可以帮助区分这个包属于哪个组织或者作者,避免与其他包重名。
  其实,等同于

npm install -g vue-cli

  ⑵ 运行vue-cli-service build就可以打包了,为什么还要使用webpack呢?

  运行 vue-cli-service build 实际上就是执行 webpack 打包流程的一个封装。
  尽管 Vue CLI 对 webpack 进行了封装,但是在某些场景下,我们需要对 webpack 的配置进行更加精细的控制,或者我们需要使用一些 Vue CLI 中没有默认配置的 webpack 插件。
  Vue CLI 中提供的一些自定义配置项,实际上也是针对 webpack 的配置进行的。
  虽然在大多数情况下,我们可以直接使用 Vue CLI 提供的命令来进行项目打包,但是对 webpack 进行更深入的学习和使用,对于理解和掌握 Vue CLI 的打包流程和自定义配置,以及在项目开发中遇到问题时进行调试和解决,都是非常有帮助的。

  ⑶ vue.config.js和Webpack.config.js都包含了对Webpack的定义,不冲突吗?

  vue.config.js 和 webpack.config.js都是webpack 的配置文件,它们之间的关系是互补的。
  当我们在 vue.config.js 中定义了某些 webpack 配置时,这些配置会被合并到 Vue CLI 默认的 webpack 配置中。而如果我们需要更细粒度地控制 webpack 配置,或者需要使用一些 Vue CLI 中没有提供的 webpack 插件或功能,我们可以在项目根目录下创建一个 webpack.config.js 文件,并在其中编写自己的 webpack 配置。
  在使用 vue-cli-service 命令时,Vue CLI 会自动将 webpack.config.js 文件和 vue.config.js 文件中的配置和默认配置进行合并,生成最终的 webpack 配置。
  需要注意的是,如果在 vue.config.js 和 webpack.config.js 文件中都定义了相同的 webpack 配置,webpack.config.js 文件中的配置将覆盖 vue.config.js 文件中的配置。因此,开发者需要注意确保不会出现重复的配置。

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

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

相关文章

PGLBox全面解决图训练速度、成本、稳定性、复杂算法四大问题!

图神经网络&#xff08;Graph Neural Network&#xff0c;GNN&#xff09;是近年来出现的一种利用深度学习直接对图结构数据进行学习的方法&#xff0c;通过在图中的节点和边上制定聚合的策略&#xff0c;GNN能够学习到图结构数据中节点以及边内在规律和更加深层次的语义特征。…

Dubbo学习笔记2

Dubbo学习笔记&#xff08;二&#xff09; Dubbo常用配置 覆盖策略 规则&#xff1a; 1、精确优先&#xff08;方法级优先&#xff0c;接口次之&#xff0c;全局配置再次之&#xff09; 2、消费者设置优先&#xff08;如果级别一样&#xff0c;则消费方优先&#xff0c;提供…

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎

网络安全-信息收集- 谷歌浏览器插件收集信息&#xff0c;谷歌hacking搜索语法-带你玩不一样的搜索引擎 前言 一&#xff0c;我也是初学者记录的笔记 二&#xff0c;可能有错误的地方&#xff0c;请谨慎 三&#xff0c;欢迎各路大神指教 四&#xff0c;任何文章仅作为学习使用 …

图解LeetCode——剑指 Offer 28. 对称的二叉树

一、题目 请实现一个函数&#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样&#xff0c;那么它是对称的。 二、示例 2.1> 示例 1&#xff1a; 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2> 示例 2&#xff1a; 【输入】root [1,2,2,nul…

quartz使用及原理解析

quartz简介 ​ Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;完全由Java开发&#xff0c;可以用来执行定时任务&#xff0c;类似于java.util.Timer。但是相较于Timer&#xff0c; Quartz增加了很多功能&#xff1a; 持久性作业 - 就是保持调度…

瑞典军事研究:从认知心理学的视角探讨军事创新进程

来源&#xff1a;Military Innovation as the Result of Mental Models of Technology 《摘要》 政治紧张局势的加剧和技术发展的进步促使Scandinavian 国家&#xff08;斯堪的纳维亚半岛&#xff0c;欧洲最大的半岛&#xff0c;有挪威、瑞典两国以及芬兰北端的一小部分。&am…

SpringBoot3集成TDengine自适应裂变存储

前言 首先很遗憾的告诉大家&#xff0c;今天这篇分享要关注才可以看了。原因是穷啊&#xff0c;现在基本都是要人民币玩家了&#xff0c;就比如chatGPT、copilot&#xff0c;这些AI虽然都是可以很好的辅助编码&#xff0c;但是都是要钱。入驻CSDN有些年头了&#xff0c;中间有几…

Python没有指针怎么实现链表?

Python没有指针怎么实现链表&#xff1f; 学习数据结构的的链表和树时&#xff0c;会遇到节点&#xff08;node&#xff09;这个词&#xff0c;节点是处理数据结构的链表和树的基础。节点是一种数据元素&#xff0c;包括两个部分&#xff1a;一个是实际需要用到的数据&#xff…

考研复试机试 | C++ | 尽量不要用python,很多学校不支持

目录1.1打印日期 &#xff08;清华大学上机题&#xff09;题目&#xff1a;代码&#xff1a;1.2改一改&#xff1a;上一题反过来问题代码&#xff1a;2.Day of Week &#xff08;上交&&清华机试题&#xff09;题目&#xff1a;代码&#xff1a;3.剩下的树&#xff08;清…

sni第三种模式复现、幽灵猫网络抓包方式复现、所有漏洞复现

sni第三种模式复现 搭建环境 [rootlocalhost nginx]# mkdir certificate [rootlocalhost nginx]# cd certificate/[rootlocalhost certificate]# openssl genrsa -des3 -out ssl.key 4096 [rootlocalhost certificate]# openssl req -new -key ssl.key -out aaa.csr [rootlo…

Django框架之模型视图-URLconf

URLconf 浏览者通过在浏览器的地址栏中输入网址请求网站对于Django开发的网站&#xff0c;由哪一个视图进行处理请求&#xff0c;是由url匹配找到的 配置URLconf 1.settings.py中 指定url配置 ROOT_URLCONF 项目.urls2.项目中urls.py 匹配成功后&#xff0c;包含到应用的urls…

ChatGPT时代,别再折腾孩子了

今天这篇完全是从两件事儿有感而发。昨天在文印店&#xff0c;在复印机上看到装订好的几页纸&#xff0c;我瞥了一眼&#xff0c;是历史知识点&#xff1a;隋朝大运河分为四段&#xff0c;分别是___ ___ ___ ___&#xff0c;连接了五大河___ ___ ___ ___ ______ 年&#xff…

开源云真机平台——Sonic应用实践

前言 Sonic是一款开源、支持分布式部署、在线自动化测试的私有云真机平台。想着写一篇总结分享。 一、云真机平台 1.云真机平台对比 目前市面上常见的云真机平台有两种&#xff0c;一种是各大服务商如阿里、腾讯、百度推出的公共云真机平台&#xff0c;如&#xff1a;WeTes…

2月18日绿健简报,星期六,农历正月廿八

2月18日绿健简报&#xff0c;星期六&#xff0c;农历正月廿八坚持阅读&#xff0c;静待花开1. 中国证监会发布全面实行股票发行注册制相关制度规则&#xff0c;即日起施行。2. 返回地面75天后神舟十四号乘组航天员首次与媒体和公众正式见面。3. 银保监会查处5家金融机构违法违规…

C语言结构体复习总结

目录 一、结构体引入 1.1 为什么要用结构体&#xff1a; 1.2 定义一个结构体&#xff1a; 1.3 结构体在声明的时候不要定义变量&#xff1a; 1.4 根据业务需求定义不同的结构体&#xff1a; 二、定义结构体和使用变量 2.1 最好不要在声明结构体时定义变量&#xff1a; …

找工作必看,用Python爬取数据分析岗位信息并可视化分析

导读&#xff1a; 最近经常收到人事小姐姐和猎头小哥哥的面试邀请&#xff0c;想想最近也不是招聘旺季呀。但又想到许多小伙伴们有找工作这方面的需求&#xff0c;今天就来分享一篇简单的爬虫案例&#xff0c;旨在跟大家一起分析一下部分招聘市场。以"数据分析"为例。…

Linux之Xshell工具使用

shell简介Xshell是一个远程工具&#xff0c;可以远程连接linux系统 &#xff0c;SSH&#xff0c;远程管理 Xshell来远程访问Linux系统的终端 。shell的英文含义是“壳”&#xff1b;它是相对于内核来说的&#xff0c;因为它是建立在内核的基础上&#xff0c;面向于用户的一种表…

Eclipse下Maven的集成

Eclipse下Maven的集成 2.1指定本地maven环境 参考&#xff1a;Eclipse的Maven创建_叶书文的博客-CSDN博客_eclipse创建maven项目 指定用本地maven指定maven仓库设置和地址2.2创建maven项目 1.新建 2.目录设置 3.坐标设置&#xff08;随便写就行&#xff09; 4.目录结构 2.3配置…

事件驱动型架构

事件驱动型架构是一种软件设计模式&#xff0c;其中微服务会对状态变化&#xff08;称为“事件”&#xff09;作出反应。事件可以携带状态&#xff08;例如商品价格或收货地址&#xff09;&#xff0c;或者事件也可以是标识符&#xff08;例如&#xff0c;订单送达或发货通知&a…

【看表情包学Linux】进程地址空间 | 区域和页表 | 虚拟地址空间 | 初识写时拷贝

&#x1f923; 爆笑教程 &#x1f449; 《看表情包学Linux》&#x1f448; 猛戳订阅 &#x1f525; &#x1f4ad; 写在前面&#xff1a;本章核心主题为 "进程地址空间"&#xff0c;会通过验证 Linux 进程的地址空间来开头&#xff0c;抛出 "同一个值能有不同内…