从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)

From: https://blog.csdn.net/u012907049/article/details/72764151

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012907049/article/details/72764151

前言

VueJS可以说是近些年来最火的前端框架之一,越来越多的网站开始使用vuejs作为前端框架,vuejs轻量、简单的特性使得前端开发变得更加简易,而基于vuejs的前端组件库也越来越多。我们今天使用的ElementUI,是饿了么团队开发的一款基于vuejs的前端组件库,也是众多vuejs组件库里面比较优秀的一款。这里要说一下我们构建网站所需要用到的一些东西:

  • NodeJS(npm)
  • Webstorm (前端IDE)
  • Nginx(后期用来转发请求到后台服务器)
  • Eclipse(后台IDE)

正文

安装nodeJS和npm

由于我们要使用npm这个包管理器,所以要安装nodeJS。现在版本的nodeJS已经集成了npm,所以我们只需要安装一次即可。我们访问nodejs中文网,下载对应自己系统的版本就可以了。这里我们下载Windows系统的64位zip文件,下载完成后解压,可以看到里面有一个node.exe的可执行文件。


这里写图片描述

 

我们把当前的目录加入到系统环境变量的path里面。然后打开cmd命令行,输入npm -v,如果出现如下图的显示,说明已经安装正确。


npm

 

这样我们以后就可以在硬盘中任何一个位置里使用npm命令了。

安装Webstorm

Webstorm是一款专门用于前端开发的IDE,在其最新的版本中已经有了对vuejs的语法支持。我们进入Webstorm的官方网站下载webstorm的最新版本,安装之后,会提示我们需要激活,我们按下图中的输入,点击activate就可以了。


这里写图片描述

 

激活成功之后进入webstorm,此时我们已经可以进行开发了,不过我们首先要把vue component的模版加入到模版库中,这样以后我们每次新建一个.vue后缀的文件,都不需要先手动添加一些默认的代码。点击左上角File->New->Edit File Templates,在弹出的对话框中点击左上角的绿色加号,然后按照如图显示填写Name和Extension,


这里写图片描述

 

在下方橙色区域的代码段内填写

<template><div></div>
</template>
<script type="text/ecmascript-6">export default {data(){return {}}}
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

然后点击apply,再点击ok即可。现在我们再次点击左上角File->New,可以看到刚才创建的vue template已经出现了。我们点击vue template,名称填写test,可以看到新创建的文件就是刚才我们创建的模版的样子,如图。


这里写图片描述

 

我们可以看到这个模版里面使用的ES6的写法,而我们当前的IDE默认支持的是ES5,这里我们点击左上角File->Settings,然后下图设置:


这里写图片描述

 

然后点击apply即可。

创建ElementUI工程

目前ES5仍属于主流写法,而我们要使用ES6,需要用到babel来将ES6的语法转换回ES5的写法,然后用webpack进行打包等等一些列操作。不过我们不需要自己去配置这些东西,如果是普通的vuejs工程,我们可以使用一个叫做vue-cli的脚手架工具生成vuejs工程,而我们现在使用的是vuejs+ElementUI,所以我们可以从ElementUI的官网里找到通用的项目模版。地址在ElementUI的GitHub,我们只要下载这个工程即可。下载解压之后,在webstorm中点击File->Open,打开刚才下载的工程。打开之后可以看到工程结构如下图:


这里写图片描述

 

可以看到里面已经集成了bable、webpack等插件。不需要我们自己去配置。我们导入这个工程之后,需要做的一件事就是将npm模块安装到这个目录下。我们打开命令行,进入当前工程的根目录,然后输入

npm install
  • 1

如果安装速度较慢,可以使用npm依赖包在国内由阿里云提供的镜像,如下所示

npm install --registry=http://registry.npm.taobao.org
  • 1

点击回车。

安装结束后我们可以看到工程目录下多了一个node_modules的文件夹,该文件夹就是工程的依赖包所在。以后我们如果想添加依赖包,就可以继续用上文的指令,例如如果想加入vue-router,那么需要输入

npm install vue-router --save
  • 1

npm会自动寻找最新版本的依赖包进行安装。

工程打包运行

安装好依赖之后,我们可以对工程进行打包和运行。我们仍然是使用命令行,进入当前工程的目录,并输入

npm run dev
  • 1

这段代码的意思就是以本地服务器的端口启动这个工程。关于本地服务器的配置信息,在工程根目录的webpack.config.js中,我们可以在该文件中看到如下代码段:

devServer: {host: '127.0.0.1',port: 8010,proxy: {'/api/': {target: 'http://127.0.0.1:8080',changeOrigin: true,pathRewrite: {'^/api': ''}}},
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

这里的配置信息写的很清楚,本地的服务器端口为8010,如果我们想改变端口号或主机名,只要改变这里对应的字段即可。
我们输入npm run dev后,会出现一长串信息,最后会出现webpack: Compiled successfully的字样,代表我们的代码编译成功。这时我们打开浏览器,输入localhost:8010,出现如图所示的网页,表示我们的第一个Vuejs2.0 +ElementUI工程已经成功运行。


这里写图片描述

点击图中的Let’s do it按钮,可以看到右侧有一个提醒消息飘出来,这就是ElementUI中的一个组件。


这里写图片描述

 

至此一个简单的基于VueJs2.0和ElementUI的前端网站的雏形已经完成了,接下来的时间我会慢慢介绍构建单页面应用的更多方法和细节。

小结

Webstorm对于前端语言的支持非常丰富,在2017.1版本之后也更新了对vuejs语法的高亮显示的支持。另外,相对于Eclipse等后端IDE,Webstorm不需要在每次写完代码后手动保存,所有的保存都是实时进行的。对于需要同时开发前端和后端的工程师来说,这是需要注意的一点,如果习惯了webstorm的实时保存,可能会在修改了后端代码后忘记保存。
还有一点就是npm run dev是热加载,我们执行了这条命令后在webstorm里修改前端代码,响应的变化就会马上显示在前端页面,这也是很方便的一点。
另外就是关于ES6的问题,ES6是今后的主流,并且自带模块化语句import和export,这对于vuejs的组件化开发是非常有帮助的,而组件化开发会很大程度上提高编程和代码管理的效率。这个系列的文章都会以ES6的写法进行开发。如果你想了解vuejs和ElementUI在ES5的编程方法,可以看我的另一篇博客
Vue2.0+ElementUI+PageHelper实现的表格分页
这篇文章里介绍了ES5写法下的vue2.0和ElementUI,以及基于它们的前端增删改查的基本操作和后端pageHelper物理分页的方法。

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

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

相关文章

解决微信小程序报[ app.json 文件内容错误] app.json: app.json 未找到,未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。小程序app.json报错

编译报错&#xff1a;[ app.json 文件内容错误] app.json: app.json 未找到 原因&#xff1a;由于project.config.json文件的miniprogramRoot小程序根目录属性找不到aap.json的路径&#xff08;可能是错误的路径&#xff0c;也可能是没有这一行代码&#xff09;&#xff1b; &…

css3新单位vw、vh、vmin、vmax的使用详解(附样例)

From: http://www.hangge.com/blog/cache/detail_1715.html 像 px、em 这样的长度单位大家肯定都很熟悉&#xff0c;前者为绝对单位&#xff0c;后者为相对单位。CSS3 又引入了新单位&#xff1a;vw、vh、vmin、vmax。下面对它们做个详细介绍。 一、基本说明 1&#xff0c;vw…

数据结构之递归

第一篇&#xff1a;数据结构之链表 第二篇&#xff1a;数据结构之栈和队列 第三篇&#xff1a;数据结构之二叉树 第四篇&#xff1a;数据结构之排序 第五篇&#xff1a;数据结构之字符串 在这篇文章里&#xff0c;我们主要讨论和递归相关的话题。递归是数据结构中解决复杂问题时…

HBuilderX搭建微信小程序;HBuilderX开发uni-app微信小程序;uni-app开发微信小程序;使用uni-app搭建微信小程序;使用uni-ui模板搭建微信小程序步骤

1.选择模板 uni-ui 2.得到创建项目 3.获取APPid 在微信小程序电脑后台获取APPID 这个方法适用于自己申请的微信小程序&#xff08;自己用的小程序&#xff09; 打开微信小程序官网&#xff1a;https://mp.weixin.qq.com/ 并登陆 4.项目打包 打包后运行在微信小程序工具 才…

vh,vw单位你知道多少?

From: https://mp.weixin.qq.com/s/G7ZYCiO__4g2LjRuNl32Ew 响应式布局的单位我们第一时间会想到通过rem单位来实现适配&#xff0c;但是它还需要内嵌一段脚本去动态计算跟元素大小。 比如&#xff1a; (function (doc, win) { let docEl doc.documentElement let resizeEvt…

为什么说任何基于比较的算法将 5 个元素排序都需要 7 次?

排序算法对结果的唯一要求就是操作数满足全序关系&#xff1a; 如果 a≤b 并且 b≤c 那么 a≤c&#xff08;传递性&#xff09;。 对于 a 或 b&#xff0c;要不 a≤b&#xff0c;要不 b≤a&#xff08;完全性&#xff09;。这个问题可以用信息论来回答。 我从 1 到 5 中挑一个数…

iTerm2分屏时,如何使得新窗口的当前路径和前一个窗口一样?

From: https://segmentfault.com/q/1010000005355758 Preferences 里面设置 Working Directory 为 reuse previous sessions directory

全国80几所重点大学ftp资源库(经常逛逛可能有惊喜哦)很难收集的,知道其他的友友可以留言完善...

2019独角兽企业重金招聘Python工程师标准>>> 重庆交通大学外国语学院ftp \\202.202.240.93/ 密码:a 帐号:as 电子科技大学ftp    ftp://xsc. cuit. edu. cn/   大连理工大学    ftp://ftp. dlut. edu. cn   上海交通大学    ftp://mssite. sjtu. …

python发送包含html、图片、附件和链接的邮件

从我的126邮箱给我的QQ邮箱发送测试邮件 1.smtplib模块的使用 smtplib库用来发送邮件。需要用到的函数如下&#xff1a; 连接到SMTP服务器&#xff0c;参数为SMTP主机和端口&#xff1a; SMTP.connect([host[,port]]) 登录SMTP服务器&#xff0c;参数为邮箱用户名和密码&#x…

apiCloud中Frame框的操作,显示与隐藏Frame

Frame是一层一层的概念&#xff0c; 有的位于上层&#xff0c;有的位于下层。 1.加载菜单 2.加载页面层 3.首页拆分出内容层&#xff0c;这个时候内容层位于页面层的上方&#xff0c;当点击其他页面的时候&#xff0c;内容层遮挡住了他们 解决方案一 判断是否是首页&#xff0c…

迅雷Chrome插件引发的Uncaught ReferenceError: xl_chrome_menu is not defined JS报错

前几天发现我也有这问题 具体是点击某个button 会出这错。 倒是没啥影响不过用chrome控制台调试的时候比较烦 baidu了下 都说卸掉迅雷。。但是出于程序员的角度还是想解决掉BUG 我的方法是 找到对应的xl.js文件。、 找不到&#xff1f; 直接到chrome文件夹下搜索下xl.js就好了。…

学习《css世界》笔记之使用css实现凹凸效果

显示效果 HTML <span class"ao"></span> <span class"tu"></span>CSS .ao,.tu{display: inline-block;width: 0;font-size: 14px;line-height: 18px;margin: 35px;/* color: #fff; *//* 文字颜色 */}.ao:before,/* :before的主…

IO调度算法

IO调度算法的选择 一) I/O调度程序的总结 1) 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成. 2) 每个块设备都有它自己的队列. 3) I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作. 4) 内核…

ORA-01555 原因与解决

ORA-01555 原因与解决&#xff1a; 前面提到了ORA-01555错误&#xff0c;那么现在来看一下ORA-01555错误是怎样产生的。由于回滚段是循环使用的&#xff0c;当事务提交以后&#xff0c;该事务占用的回滚段事务会被标记为非活动&#xff0c;回滚段空间可以被覆盖重用。那么一个问…

使用css优雅解决文字两端对齐的方式之一

效果图 HTML <body><div>学校</div><div>班级</div><div>班主任</div><div>上课时间</div><div>名字</div></body>CSS div {margin: 10px 0;width: 70px;border: 1px solid brown;text-align: just…

学习《css世界》笔记之loading三点动画效果

动画实例 HTML <div>正在加载中<span>...</span></div>CSS span {display: inline-block;height: 1em;line-height: 1;text-align: left;vertical-align: -0.25em;/* 属性设置元素的垂直对齐方式。指定为负长度&#xff0c;可以使元素降低 */overfl…

关于今天

今天天气晴朗,晴空万里,万里无云,哈哈... 早上起来的时候,大雾,妖风四起. 然后早上起来居然就玩了一天的 冰封要塞. 说说玩了后的心得吧. 推塔游戏,额,这是CF第一次推出的这种模式.可以说和dota和英雄联盟有些相似.估计是某人从dota和英雄联盟这么火的情况下想出来的这招. 推塔…

学习《css世界》笔记之content自动添加开启闭合符号

实例 HTML <p lang"zh"><q>啦啦德玛西亚</q></p><p lang"en"><q>This book is very good!</q></p><p lang"no"><q>denne bog er fantasisk!</q></p><p class"…

maven+jetty项目在tomcat部署

步骤1&#xff1a;项目打包 clean install 步骤二&#xff1a;拷贝war 包到tomcat下 步骤三&#xff1a;修改server.xml文件的端口 步骤四&#xff1a;启动tomcat,注意jetty的项目是不需要带项目名的&#xff0c;Tomcat的项目需要加上项目名。 温馨提示&#xff0c;在启动tomca…

学习《css世界》笔记之多行文本实现垂直居中

效果图 HTML <div class"box"><div class"content">具有行高实现的多行文字垂直居中效果&#xff0c;需要属性vertical-align帮助</div> </div>CSS .box{width: 200px;line-height: 120px;background-color: #f0f0f0;}.content{…