• 使用vue-cli搭建SPA项目


    1. 什么是vue-cli?

       vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,创建命令如下:          
       vue init webpack xxx                   
       注1:xxx 为自己创建项目的名称
       注2:必须先安装vue,vue-cli,webpack,node等一些必要的环境
     

    2. 安装vue-cli

       打开cmd执行以下两个命令:
       npm install -g vue-cli
       npm install -g webpack
       注1:安装成功后,会出现如下文件
            D:initPathnode-v10.15.3-win-x64node_global
                     
       注2:安装完成之后打开命令窗口并输入 vue -V(注意这里是大写的“V”),如果出现相应的版本号,则说明安装成功。
     

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

      步骤一:使用脚手架创建项目骨架
       ## 此步骤可理解成:使用eclipse创建一个maven的web项目
       ## 在任意盘创建一个新的文件夹(建议不要出现中文以及空格)  #  用来保存创建的项目
      注:cmd执行命令时将路径切换到你所建的文件夹,然后再执行下方命令进行spa项目创建
       vue init webpack spa1      #此命令用于创建SPA项目,它会在当前目录生成一个以“spa1”命名的文件夹
                                                #spa1即为项目名,项目名不能用中文或大写字母,然后终端会出现“一问一答”模式(见注2)
     
       注1:cmd命令行窗口显示中文乱码,多是因为cmd命令行窗口字符编码不匹配导致

            修改cmd窗口字符编码为UTF-8,命令行中执行:chcp 65001
            切换回中文:chcp 936
            这两条命令只在当前窗口生效,重启后恢复之前的编码。
       
     注2:“一问一答”模式
             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!
     
     
     
     
     步骤二:运行完上面的命令后,我们需要将当前路径改变到SPA这个文件夹内,然后安装需要的模块
       ## 此步骤可理解成:maven的web项目创建成功后,修改pom文件添加依赖
       cd spa1                                  #改变路径到spa1文件夹下
       npm install                              #安装所有项目需要的npm模块
      
     
       步骤三:启动并访问项目
       ## 此步骤可理解成:启动tomcat,并通过浏览器访问项目
       cd spa1
       npm run dev
     
     
     
    注2:vue-cli构建的项目,在控制台npm run dev启动后,默认的调试地址是8080端口的但是大部分时候,
            我们都要并行几个项目开发,很有可能已经占用了8080端口,所以就涉及到如何去更改调试地址的端口号了
            路径:config --> index.js 
            dev: {
              // Paths
              assetsSubDirectory: 'static',
              assetsPublicPath: '/',
              proxyTable: {},
              host: 'localhost',
              port: 8083,       // 在这里修改端口号
              autoOpenBrowser: false,
              errorOverlay: true,
              notifyOnErrors: true,
            },
     

    5. npm install/npm install xxx -S/npm install xxx -D/npm install xxx -g的区别

      5.1 npm install
          下载“package.json”中dependencies和devdependencies中配置的所有依赖模块,并保存到项目的node_modules目录
          注1:在git clone项目的时候,项目文件中并没有node_modules文件夹,为什么呢?
      5.2 npm install xxx -g
          全局安装,下载依赖模块,并保存到%node_home% ode_global ode_modules目录下
      5.3 npm install xxx -S
          写入到package.json的dependencies对象,并保存到项目的node_modules目录
           
      5.3 npm install xxx -D
          写入到package.json的devDependencies对象,并保存到项目的node_modules目录
     
    注2:缩写命令的全称,注意大小写、-S,-D都是大写
           i/install
           -S/--save
           -D/--save-dev
           -g/--global
     

    6. vue项目结构说明

      
       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中,
                                         分别对应全局下载和局部下载的依赖包
     
     

    接下来是我们写的一个简单的嵌套路由

    src/router--index.js

     1 import Vue from 'vue'
     2 import Router from 'vue-router'
     3 import HelloWorld from '@/components/HelloWorld'
     4 import Home from '@/components/Home'
     5 import About from '@/components/About'
     6 import AboutMe from '@/components/AboutMe'
     7 import AboutWebSite from '@/components/AboutWebSite'
     8 
     9 Vue.use(Router)
    10 
    11 export default new Router({
    12   routes: [{
    13       path: '/',
    14       name: 'Home',
    15       component: Home
    16     },
    17     {
    18       path: '/Home',
    19       name: 'Home',
    20       component: Home
    21     },
    22     {
    23       path: '/About',
    24       name: 'About',
    25       component: About,
    26       children: [{
    27           path: '/AboutMe',
    28           name: 'AboutMe',
    29           component: AboutMe
    30         },
    31         {
    32           path: '/AboutWebSite',
    33           name: 'AboutWebSite',
    34           component: AboutWebSite
    35         }
    36       ]
    37     }
    38   ]
    39 })

    src--App.vue

     1 <template>
     2   <div id="app">
     3     <!-- <img src="./assets/logo.png"> -->
     4     <router-link to="/Home">首页</router-link>
     5     <router-link to="/About">关于</router-link>
     6     <router-view />
     7   </div>
     8 </template>
     9 
    10 <script>
    11   export default {
    12     name: 'App'
    13   }
    14 </script>
    15 
    16 <style>
    17   #app {
    18     font-family: 'Avenir', Helvetica, Arial, sans-serif;
    19     -webkit-font-smoothing: antialiased;
    20     -moz-osx-font-smoothing: grayscale;
    21     text-align: center;
    22     color: #2c3e50;
    23     margin-top: 60px;
    24   }
    25 </style>

    src/components/Home.vue

     1 <template>
     2     <div>
     3       显示博客内容。。。。
     4     </div>
     5 </template>
     6 
     7 <script>
     8     export default{
     9       data(){
    10         return {
    11 
    12         };
    13       }
    14     }
    15 </script>
    16 
    17 <style>
    18 
    19 </style>

     src/components/About.vue

     1 <template>
     2   <div>
     3       <router-link to="/AboutMe">关于博主</router-link>
     4       <router-link to="/AboutWebSite">关于本站</router-link>
     5   </div>
     6 </template>
     7 
     8 <script>
     9   export default {
    10     data() {
    11       return {
    12 
    13       };
    14     }
    15   }
    16 </script>
    17 
    18 <style>
    19 </style>

    src/components/AboutMe.vue

     1 <template>
     2   <view>
     3     显示博主相关个人信息。。。
     4   </view>
     5 </template>
     6 
     7 <script>
     8   export default {
     9     data() {
    10       return {
    11 
    12       };
    13     }
    14   }
    15 </script>
    16 
    17 <style>
    18 </style>

    src/components/AboutWebSite.vue

     1 <template>
     2   <view>
     3     显示网站发展历史以及相关信息。。。
     4   </view>
     5 </template>
     6 
     7 <script>
     8   export default {
     9     data() {
    10       return {
    11 
    12       };
    13     }
    14   }
    15 </script>
    16 
    17 <style>
    18 </style>

    运行结果:

     
     
     
     

    谢谢观看!!!

     
  • 相关阅读:
    【转】排序总结(总结的非常好)
    [转]C#中使用指针实现高效比较字符串的小技巧
    高斯消元法
    排序算法性能和使用场景总结
    斐波那契数列Log(n)算法
    C#部分方法定义
    杂项记录
    C#指针复习示例zz
    【转】斐波那契数列算法分析
    【转】矩阵乘法
  • 原文地址:https://www.cnblogs.com/ly-0919/p/11418835.html
Copyright © 2020-2023  润新知