vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置

简介: 这篇文章详细介绍了Vue CLI 3版本创建项目时的Runtime-Compiler和Runtime-only两种模式的区别、Vue程序的运行过程、render函数的使用、eslint的关闭方法,以及Vue CLI 2和3版本配置文件的不同和脚手架3版本创建项目的配置文件配置方法。

前言

一、Runtime-Compiler和Runtime-only两个模式

1. 模式来源

创建项目时需要选择一个模式,就是这两个模式之一 runtimecompilerruntimeonly ,如下所示
在这里插入图片描述

2. 案例显示

使用脚手架2版本 vue init webpack project-name新建两个项目,如图
在这里插入图片描述
01 选择的是 Runtime+Compiler
02 选择的事 Runtime-only

3. 区别

模式不同主要体现在两个项目中的 main.js 中的不同,如下:
01_runtimecompiler项目
在这里插入图片描述
02_runtimeonly项目
在这里插入图片描述

4. 引发思考

引发思考:为什么存在这样的差异呢?

  1. 我们需要先理解Vue应用程序是如何运行起来的。
  2. Vue中的模板如何最终渲染成真实DOM。
  3. 我们来看下面的一幅图:vue 程序运行过程

二、Vue程序运行过程和原因

在这里插入图片描述
运行过程解析

  1. template的模板存放到 vue 的 option 中,
  2. 然后 parse(解析) 成 ast(abstract syntax tree 抽象语法树)
  3. 在编译,然后使用 render() 方法
  4. 通过render() 生成 虚拟dom ,在展现成 UI。
  5. 总结下:template -> ast -> render -> vdom -> UI

综上所述,区别如下:
通过 上面了解到, 两个模式的区别如下:

 runtime-compiler(v1)
 template -> ast -> render -> vdom -> UI

 runtime-only(v2)(1.性能更高 2.下面的代码量更少)
 render -> vdom -> UI
AI 代码解读

可以看到 runtime-only 比 Runtime+Compiler 1. 性能更高 2.下面的代码量更少

当然: runtime-compiler 模式中,也可以使用 render() 函数,看本项目的 main.js 即可。

注意runtime-compiler模式下,也可以使用 render 函数进行开发
推荐使用 第一个。但是在以后项目开发时,推荐使用第二个,因为 1.性能更高 2.下面的代码量更少

三、render 函数使用

1. 使用方式一

在这里插入图片描述
在这里插入图片描述

2. 使用方式二

这里的 cpn 组件,也就是后来的 APP 组件。
在这里插入图片描述

四、eslint 关闭

01_runtimecompiler\config\index.jsuseEslint 属性,true 开启, false 关闭

五、脚手架2和3版本的配置文件

1. 脚手架2版本

  1. 先看下脚手架2版本创建的项目目录
    在这里插入图片描述
  2. 有两个文件夹,build 和 config 。里面都是配置文件
  3. 先看package.json 里面的 script 脚本,如下:
    在这里插入图片描述
  4. 可以看到对应的配置文件,里面又会引入其他配置文件。

2. 脚手架3版本

  1. 先看下脚手架3版本创建的项目目录,03是命令式创建,04是 可视化工具创建
    这里没有配置文件的文件夹。
    在这里插入图片描述
  2. 先看下 package.json,这里并没有配置文件路径。
  3. 说明脚手架3版本创建的项目把配置文件给隐藏了,
    隐藏路径:04-vuecli3test/node_modules/@vue/cli-service/webpack.config.js
  4. 如何修改配置呢,继续往下看

六、vue项目管理器

  1. 通过命令 vue UI 进行启动服务 vue项目管理器。

  2. 有三个模块:项目、创建、导入

    • 项目:vue项目管理器 进行管理 通过脚手架创建的项目
    • 创建脚手架3版本 可视化创建vue项目
    • 导入: 没有通过脚手架3版本可视化创建的项目,是不会出现在项目模块中,可以通过导入进行使用 vue项目管理器 进行管理
      在这里插入图片描述
  3. 点击项目,就进入了项目的管理界面,如下:
    在这里插入图片描述

  4. 分析项目界面的五个模块

    • 仪表盘:没什么好说的
    • 插件: 可以看到已经安装的插件,也可以进行安装新插件
    • 依赖: 可以看到已经安装的依赖包,也可以在此安装新依赖包,如axios、vue-router等
    • 配置: 一些webpack的配置
    • 任务: 启动项目等操作,对应 package.jsonscript 脚本操作。

七、脚手架3版本创建项目的配置文件配置

有三种 方式

1. vue项目管理器配置

通过 vue UI 命令启动 vue项目管理器 服务。
配置中修改,这里其实就是替换了项目中的webpack.config.js如下: 在这里插入图片描述

2. 脚手架2版本配置

  1. 脚手架2版本中,有两个文件build 和config 存放配置文件,
  2. 而在脚手架3版本中,是没有这两个配置文件的,而在被隐藏了
  3. 隐藏路径:04-vuecli3test/node_modules/@vue/cli-service/webpack.config.js
  4. webpack.config.js 文件中又引入了其他文件。一层层的去调用和引用

3. vue.config,js

在项目根目录下创建配置文件 vue.config,js, 作为额外的 配置文件内容。
里面的内容会和 隐藏起来的配置文件内容 进行合并。
文件名称固定,不可以更改。

目录
打赏
0
3
3
0
51
分享
相关文章
|
8天前
|
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
54 4
Vue实现动态数据透视表(交叉表)
Vue实现动态数据透视表(交叉表)
149 13
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。
Pinia 如何在 Vue 3 项目中进行安装和配置?
Pinia 如何在 Vue 3 项目中进行安装和配置?
122 4
属性描述符初探——Vue实现数据劫持的基础
属性描述符还有很多内容可以挖掘,比如defineProperty与Proxy的区别,比如vue2与vue3实现数据劫持的方式有什么不同,实现效果有哪些差异等,这篇博文只是入门,以后有时间再深挖。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
4月前
|
vue使用iconfont图标
vue使用iconfont图标
211 1
Vue Router 核心原理
Vue Router 是 Vue.js 的官方路由管理器,用于实现单页面应用(SPA)的路由功能。其核心原理包括路由配置、监听浏览器事件和组件渲染等。通过定义路径与组件的映射关系,Vue Router 将用户访问的路径与对应的组件关联,支持哈希和历史模式监听 URL 变化,确保页面导航时正确渲染组件。
ry-vue-flowable-xg:震撼来袭!这款基于 Vue 和 Flowable 的企业级工程项目管理项目,你绝不能错过
基于 Vue 和 Flowable 的企业级工程项目管理平台,免费开源且高度定制化。它覆盖投标管理、进度控制、财务核算等全流程需求,提供流程设计、部署、监控和任务管理等功能,适用于企业办公、生产制造、金融服务等多个场景,助力企业提升效率与竞争力。
170 12
Vue中的class和style绑定
在 Vue 中,class 和 style 绑定是基于数据驱动视图的强大功能。通过 class 绑定,可以动态更新元素的 class 属性,支持对象和数组语法,适用于普通元素和组件。style 绑定则允许以对象或数组形式动态设置内联样式,Vue 会根据数据变化自动更新 DOM。