zoukankan      html  css  js  c++  java
  • 11-Vue CLI

    1、什么是Vue CLI

    如果你只是简单写几个 Vue 的 Demo 程序, 那么你不需要 Vue CLI;

    如果你在开发大型项目, 那么你需要, 并且必然需要使用 Vue CLI;


    使用 Vue.js 开发大型应用时,我们需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情,

    如果每个项目都要手动完成这些工作,效率比较低,所以通常我们会使用一些脚手架工具来帮助完成这些事情;


    CLI 是什么意思

    CLI 是 Command-Line Interface , 翻译为命令行界面, 俗称脚手架;

    Vue CLI 是一个官方发布的 vue.js 项目脚手架;

    使用 vue-cli 可以快速搭建 Vue 开发环境以及对应的 webpack 配置;


    Vue CLI 使用前提:

    • Node
    • webpack


    2、Vue CLI的使用

    (1)安装脚手架

    npm install -g @vue/cli@3.2.1

    上面安装的是 Vue CLI3 的版本,如果需要想按照 Vue CLI2 的方式初始化项目,还需要拉取 2.x 的模板;


    拉取 2.x 模板(旧版本)
    npm install @vue/cli-init@3.2.0 -g


    (2)初始化项目

    1、Vue CLI2初始化项目:

    vue init webpack vuecli2test

    image

    vue cli 2 目录详解


    Runtime-Compiler和Runtime-only的区别:

    简单总结:

    • 如果在之后的开发中,你依然使用 template,就需要选择 Runtime-Compiler
    • 如果你之后的开发中,使用的是 .vue 文件开发,那么可以选择 Runtime-only


    render 和 template

    Vue 程序运行流程:

    image


    render函数的使用


    2、Vue CLI3初始化项目:

    vue create vuecli3test


    vue-cli 3 与 2 版本有很大区别:

    • vue-cli 3 是基于 webpack 4 打造,vue-cli 2 还是 webapck 3
    • vue-cli 3 的设计原则是“0配置”,移除了根目录下的 build 和 config 等的配置文件目录
    • vue-cli 3 提供了 vue ui 命令,提供了可视化配置,更加人性化
    • 移除了 static 文件夹,新增了 public 文件夹,并且 index.html 移动到 public 中


    创建过程:

    image


    vue cli3项目目录:


    (3)CLI 相关配置

    npm run build

    image


    npm run dev

    image


    vue CLI3的配置:

    在 Vue CLI 3 中,webpack 等相关配置文件被隐藏起来了,如果想查看或修改相关配置,可以通过以下3种方式:


    方式1:从 UI 界面上修改

    启动配置服务器:vue ui

    image

    进入 Vue 项目管理器,导入我们的项目:

    image

    然后可以在配置中查看或修改我们的 webpack 等配置:

    image


    方式2:在node_modules 中寻找

    image


    方式3:在项目中新建一个 vue.config.js 文件,将需要修改的配置代码写入其中,

    最终编译时会自动将我们添加的代码与隐藏的代码进行合并;

    image


    3、箭头函数和this指向

    (1)箭头函数

    基本使用:

    <script>
      // 无参
      const abc = () => {
    
      }
    </script>


    参数和返回值:

    <script>
      //两个参数
      const abc = (x, y) => {
        return x + y
      }
    
      //一个参数,参数外面的小括号可以省略
      // const abc = (x) => {
      const abc = x => {
        return x * x
      }
    </script>


    代码块区域:

    <script>
      //多行代码时,顺序写即可
      const ab = (x, y) => {
        console.log(x + y);
        console.log(y + x);
      }
    
      //有一行代码时
      // const ba = (x, y) => {
      //   return x + y
      // }
      const ba = (x, y) => x + y
    </script>


    (2)箭头函数的this

    <script>
      //问题:箭头函数中的this是如何查找的了?
      //答案:向外层作用域中,一层层查找this,直到有this的定义.
      const obj = {
        aa() {
          console.log(this)  //aa对象
    
          setTimeout(function () {
            console.log(this)  //window
          })
    
          setTimeout(() => {
            console.log(this)  //aa对象
          })
        }
      }
    
      obj.aa()
    </script>
  • 相关阅读:
    Nginx访问日志、 Nginx日志切割、静态文件不记录日志和过期时间
    nginx的安装 、Nginx默认虚拟主机、nginx用户认证、nginx 域名重定向
    lnmp架构、mysql的安装、php的安装、nginx相关
    限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块
    配置url防盗链、目录权限访问控制Directory、文件访问权限控制FilesMatch
    指令的概述
    点击事件交互示例
    日期过滤器示例
    in和not in注意事项
    mysql里的case用法详解
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/13691014.html
Copyright © 2011-2022 走看看