草庐IT

如何使用vue-cli来搭建vue项目?详细步骤跟着我来吧!

一杯咖啡. 2023-04-11 原文

目录

一、什么是vue-cli?

二、前提:搭建好NodeJS环境

 安装vue-cli

三、使用脚手架vue-cli(2.X版)来构建项目

 第一步

 第二步

 第三步

 第三步

第四步

 三、SPA完成路由的开发

第一步

​编辑第二步

第三步

 第四步

 第四步

 四、嵌套路由

使用children属性 

五、知识总结 


一、什么是vue-cli?

 vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,

创建命令如下:           
        vue init webpack xxx     

        注意:①xxx 为自己创建项目的名称
                   ②必须先安装vue,vue-cli,webpack,node等一些必要的环境


二、前提:搭建好NodeJS环境

 安装vue-cli:

 doc命令分别(分开)执行:

   npm install -g vue-cli
   npm install -g webpack

-g:js依赖会下载到node_global中

-s:会被打包    --->存放在vueproject文件中package.json里的dependcies,打包项目的时候,里面的jar包依赖会一并打包

-d:只在开发环境中被依赖        --->存放在vueproject文件中package.json里的DevDependecies(开发环境),打包项目的时候,里面的jar包不会被打包,只供本地项目使用

注意:

        ①安装成功之后nodejs文件中的node_global里会出现如下文件:

         ②安装完成之后打开命令窗口并输入 vue -V(注意这里是大写的“V”),如果出现相应的版本号,则说明安装成功。


三、使用脚手架vue-cli(2.X版)来构建项目

   ## 使用脚手架创建项目骨架
   ## 此步骤可理解成:使用eclipse创建一个maven的web项目 

 第一步:

在非中文目录下创建一个文件,在这里待开命令窗口cmd

 第二步:

在命令窗口中输入:vue init webpack spa1 【注意:spa1指的是项目名,可自定义】然后回车。   

#此命令用于创建SPA项目,它会在当前目录生成一个以“spa1”命名的文件夹。

 第三步:

进入一问一答模式

 注意:
         1.Project name:项目名,默认是输入时的那个名称spa1,直接回车 
         2.Project description:项目描述,直接回车
         3.Author:作者,随便填或直接回车
         4.Vue build:选择题,一般选第一个
           4.1Runtime + Compiler: recommended for most users//运行加编译,官方推荐,就选它了
           4.2Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specific HTML) are ONLY allowed in .vue files 
              - render functions are required elsewhere//仅运行时,已经有推荐了就选择第一个了
         5.Install vue-router:是否需要vue-router,Y选择使用,这样生成好的项目就会有相关的路由配置文件
         6.Use ESLint to lint your code:是否用ESLint来限制你的代码错误和风格。N  新手就不用了,但实际项目中一般都会使用,这样多人开发也能达到一致的语法
         7.Set up unit tests:是否安装单元测试 N
         8.Setup e2e tests with Nightwatch?:是否安装e2e测试  N
         9.Should we run `npm install` for you after the project has been created? (recommended) (Use arrow keys)
           > Yes, use NPM                    
             Yes, use Yarn
             No, I will handle that myself     //选择题:选第一项“Yes, use NPM”是否使用npm install安装依赖

        全部选择好回车就进行了生成项目,出现如下内容表示项目创建完成!
        # Project initialization finished!

 等待构建脚手架就好。

OK,下载完毕 ,可以看见我们的文件夹里出现了这个项目文件。

 点进去是这样的:

 第三步: 

将项目导入HBuilder X中,

注意:vue-cli构建的项目,在控制台npm run dev启动后,默认的调试地址是8080端口的但是大部分时候,我们都要并行几个项目开发,很有可能已经占用了8080端口,所以就涉及到如何去更改调试地址的端口号了。

 介绍一下工程目录结构

build文件夹(这个文件夹主要是进行webpack的一些配置)                       
     webpack.base.conf.js【webpack基础配置,开发环境,生产环境都依赖】            
     webpack.dev.conf.js【webpack开发环境配置】           
     webpack.prod.conf.js【webpack生产环境配置】             
     build.js【生产环境构建脚本】                               
     vue-loader.conf.js【此文件是处理.vue文件的配置文件】               

config文件夹
     dev.env.js【配置开发环境 】                       
     prod.env.js 【配置生产环境 】                    
     index.js 【这个文件进行配置代理服务器,例如:端口号的修改】                        
       
node_modules文件夹 (存放npm install时根据package.json配置生成的npm安装包的文件夹)

src文件夹(源码目录(开发中用得最多的文件夹)                          
     assets【共用的样式、图片 】                          
     components【业务代码存放的地方,里面分成一个个组件存放,一个页面是一个组件,一个页面里面还会包着很多组件】                       
router(设置路由)                       
     App.vue【 vue文件入口界面 】                         
     main.js 【对应App.vue创建vue实例,也是入口文件,对应webpack.base.config.js里的入口配置  】                        

static文件夹( 存放的文件不会经过webpack处理,可以直接引用,例如swf文件如果要引用可以在webpack配置,  对swf后缀名的文件处理的loader,也可以直接将swf文件放在这个文件夹引用 )                                                        
     package.json【 这个文件有两部分是有用的:scripts 里面设置命令以及在dependencies和devDependencies中, 分别对应全局下载和局部下载的依赖包】   

package.json详解:
   每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境
   
             

第四步:

## 我们需要将当前路径改变到SPA这个文件夹内,然后安装需要的模块。

## 此步骤可理解成:maven的web项目创建成功后,修改pom文件添加依赖。

   cd spa1                                  #改变路径到spa1文件夹下
   npm install                              #安装所有项目需要的npm模块

 然后回车。

 复制 http://localhost:8080去地址栏搜索:

 然后就OK了,访问成功!!

 SPA的访问过程:

        1、访问index.html

        2、index.html通过man.js中的vue实例管理#app边界,同时制定App.vue模板

        3、App.vue中包含了logo图片以及锚点,而锚点与组件的对应关系存在router/index.js中,所有就指向了一个组件

        4、最终App.vue中就显示了logo图片以及helloworld.vue的内容  


  三、SPA完成路由的开发

现在,我们就开始捣鼓项目了:

第一步:引入路由js依赖包(注意:这一步就不需要了,在创建SPA页面的时候就已经有了) 

第二步:定义组件

About.vue

 Home.vue

第三步:定义路由与组件的关系

 第四步:挂载边界(注意,这里是系统默认已经挂载 

 第四步:定义锚点&第五步:触发事件

 效果展示:

点击首页时:

点击关于时:


 四、嵌套路由

需求:实现点击按钮 首页 / 关于 时出现不同的页面 。

 实现思路:

“关于站长”以及“关于本站”的这两个组件嵌套在“关于”组件里。

使用children属性 

效果展示:        点击关于时

                        点击关于站长时:

                        点击关于本站时: 


五、知识总结 

 组件的嵌套:添加属性  children


今日分享内容到此结束啦,希望本篇内容对您有所帮助!

预告下期内容:【SPA项目开发之登录注册】

我是一杯咖啡,我们下期再见!

有关如何使用vue-cli来搭建vue项目?详细步骤跟着我来吧!的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  4. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  5. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  6. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  7. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  10. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

随机推荐