zoukankan      html  css  js  c++  java
  • 9.第一个vue-cli项目

    1.什么是vue-cli

      vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;

      预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速;

    主要功能:

    • 统一的目录结构
    • 本地调试
    • 热部署
    • 单元测试
    • 集成打包上线

    2.需要的环境

    确认nodejs是否安装成功:

    • cmd 下输入 node -v,查看是否能够正确打印出版本号即可!
    • cmd 下输入 npm-v,查看是否能够正确打印出版本号即可!

    安装Node.js淘宝镜像加速器(cnpm):

    1 # -g 就是全局安装
    2 npm install cnpm -g
    3 
    4 # 或使用如下语句解决 npm 速度慢的问题
    5 npm install --registry=https://registry.npm.taobao.org

    安装vue-cli:

    1 cnpm install vue-cli -g
    2 
    3 # 测试是否安装成功
    4 # 查看可以基于哪些模板创建 vue 应用程序,通常我们选择 webpack
    5 vue list

    3.第一个vue-cli应用程序

    1.在文件夹中使用cmd创建一个名为myvue的vue项目并用webpack打包工具打包

    1 # 这里的 myvue 是项目名称,可以根据自己的需求起名
    2 vue init webpack myvue

    说明:

    • Project name:项目名称,默认 回车 即可
    • Project description:项目描述,默认 回车 即可
    • Author:项目作者,默认 回车 即可
    • Install vue-router:是否安装 vue-router,选择 n 不安装(后期需要再手动添加)
    • Use ESLint to lint your code:是否使用 ESLint 做代码检查,选择 n 不安装(后期需要再手动添加)
    • Set up unit tests:单元测试相关,选择 n 不安装(后期需要再手动添加)
    • Setup e2e tests with Nightwatch:单元测试相关,选择 n 不安装(后期需要再手动添加)
    • Should we run npm install for you after the project has been created:创建完成后直接初始化,选择 n,我们手动执行;运行结果!

    2.初始化并运行myvue项目

    1 cd myvue
    2 npm install
    3 npm run dev

    3.安装并运行成功后在浏览器输入:http://localhost:8080

    4.分析vue-cli目录结构

    • build 和 config:WebPack 配置文件
    • node_modules:用于存放 npm install 安装的依赖文件
    • src: 项目源码目录
    • static:静态资源文件
    • .babelrc:Babel 配置文件,主要作用是将 ES6 转换为 ES5
    • .editorconfig:编辑器配置
    • eslintignore:需要忽略的语法检查配置文件
    • .gitignore:git 忽略的配置文件
    • .postcssrc.js:css 相关配置文件,其中内部的 module.exports 是 NodeJS 模块化语法
    • index.html:首页,仅作为模板页,实际开发时不使用
    • package.json:项目的配置文件

      • name:项目名称
      • version:项目版本
      • description:项目描述
      • author:项目作者
      • scripts:封装常用命令
      • dependencies:生产环境依赖
      • devDependencies:开发环境依赖

    5.分析src目录

    src目录:项目的源码目录,所有代码都会写在这里

    main.js:项目的入口文件,我们知道所有的程序都会有一个入口

     1 // The Vue build version to load with the `import` command
     2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
     3 import Vue from 'vue'
     4 import App from './App'
     5 
     6 Vue.config.productionTip = false
     7 
     8 /* eslint-disable no-new */
     9 new Vue({
    10   el: '#app',
    11   components: { App },
    12   template: '<App/>'
    13 })

    说明:

    • mport Vue from 'vue':ES6 写法,会被转换成 require("vue"); (require 是 NodeJS 提供的模块加载器)
    • import App from './App':意思同上,但是指定了查找路径,./ 为当前目录
    • Vue.config.productionTip = false:关闭浏览器控制台关于环境的相关提示
    • new Vue({...}):实例化 Vue

      • el: '#app':查找 index.html 中 id 为 app 的元素
      • template: '<App/>':模板,会将 index.html 中 <div id="app"></div> 替换为 <App />
      • components: { App }:引入组件,使用的是 import App from './App' 定义的 App 组件;

    App.vue:index.html中调用的组件

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

    说明:

    • template:HTML 代码模板,会替换 <App /> 中的内容
    • import HelloWorld from './components/HelloWorld':引入 HelloWorld 组件,用于替换 template 中的 <HelloWorld/>
    • export default{...}:导出 NodeJS 对象,作用是可以通过 import 关键字导入

      • name: 'App':定义组件的名称
      • components: { HelloWorld }:定义子组件

    HelloWorld.vue:

     1 <template>
     2  <div>{{msg}}</div>
     3 </template>
     4 
     5 <script>
     6 export default {
     7   name: 'HelloWorld',
     8   data () {
     9     return {
    10       msg: '这是我的第一个Vue项目'
    11     }
    12   }
    13 }
    14 </script>
    15 
    16 <!-- Add "scoped" attribute to limit CSS to this component only -->
    17 <style scoped>
    18 h1, h2 {
    19   font-weight: normal;
    20 }
    21 ul {
    22   list-style-type: none;
    23   padding: 0;
    24 }
    25 li {
    26   display: inline-block;
    27   margin: 0 10px;
    28 }
    29 a {
    30   color: #42b983;
    31 }
    32 </style>

    说明:

    •  <style scoped> :CSS 样式仅在当前组件有效,声明了样式的作用域,是当前的界面私有的!
  • 相关阅读:
    递延收益为什么属于负债类科目
    java 环境变量脚本
    dotnet 执行命令常用代码
    centos安装nuget
    centos 安装nodejs redis
    linux git 记住密码
    libgit2-6311e88: cannot open shared object file: No such file or directory
    angular ng build 报错 Cannot read property 'default' of undefined
    java ObjectMapper json 与对象的相互转换
    java 流不能复用 stream has already been operated upon or closed 内存分页
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12079764.html
Copyright © 2011-2022 走看看