学习Vue3 第三章(Vite目录 & Vue单文件组件 & npm run dev 详解)

简介: index.html 非常重要的入口文件 (webpack,rollup 他们的入口文件都是enrty input 是一个js文件 而Vite 的入口文件是一个html文件,他刚开始不会编译这些js文件 只有当你用到的时候 如script src="xxxxx.js" 会发起一个请求被vite拦截这时候才会解析js文件)

Vite目录


public 下面的不会被编译 可以存放静态资源


assets 下面可以存放可编译的静态资源


components 下面用来存放我们的组件


App.vue 是全局组件


main ts 全局的ts文件


index.html 非常重要的入口文件 (webpack,rollup 他们的入口文件都是enrty input 是一个js文件 而Vite 的入口文件是一个html文件,他刚开始不会编译这些js文件 只有当你用到的时候 如script src="xxxxx.js" 会发起一个请求被vite拦截这时候才会解析js文件)

vite config ts 这是vite的配置文件具体配置项 后面会详解


VsCode Vue3 插件推荐 Vue Language Features (Volar)


SFC 语法规范


*.vue 件都由三种类型的顶层语法块所组成:<template>、<script>、<style>


<template>


  • 每个 *.vue 文件最多可同时包含一个顶层 <template> 块。


  • 其中的内容会被提取出来并传递给 @vue/compiler-dom,预编译为 JavaScript 的渲染函数,并附属到导出的组件上作为其 render 选项。


<script>


  • 每一个 *.vue 文件可以有多个 <script> 块 (不包括<script setup>)。


  • 该脚本将作为 ES Module 来执行。


  • 默认导出的内容应该是 Vue 组件选项对象,它要么是一个普通的对象,要么是 defineComponent 的返回值。


<script setup>


  • 每个 *.vue 文件最多只能有一个 <script setup> 块 (不包括常规的 <script>)


  • 该脚本会被预处理并作为组件的 setup() 函数使用,也就是说它会在每个组件实例中执行。<script setup> 的顶层绑定会自动暴露给模板。更多详情请查看 <script setup> 文档。


<style>


  • 一个 *.vue 文件可以包含多个 <style> 标签。


  • <style> 标签可以通过 scoped 或 module attribute (更多详情请查看 SFC 样式特性) 将样式封装在当前组件内。多个不同封装模式的 <style> 标签可以在同一个组件中混

npm run dev 详解


在我们执行这个命令的时候会去找 package json 的scripts 然后执行对应的dev命令


6acb806d8ffa485ca5d82080fa812889.png


那为什么我们不直接执行vite 命令不是更方便吗


应为在我们的电脑上面并没有配置过相关命令 所以无法直接执行


a336be16f8464405be0adea96e7ceed6.png


其实在我们执行npm install 的时候(包含vite) 会在node_modules/.bin/ 创建好可执行文件


.bin 目录,这个目录不是任何一个 npm 包。目录下的文件,表示这是一个个软链接,打开文件可以看到文件顶部写着 #!/bin/sh ,表示这是一个脚本


a16de7a134e44c81b1501da1767432a6.png

4cfa1c01ea6d46938fcbdf972c49db48.png


在我们执行npm run xxx  npm 会通过软连接 查找这个软连接存在于源码目录node_modules/vite


e5fdf294051e4953b6e70e31345d220c.png


所以npm run xxx 的时候,就会到 node_modules/bin中找对应的映射文件,然后再找到相应的js文件来执行


1.查找规则是先从当前项目的node_modlue /bin去找,


2.找不到去全局的node_module/bin 去找


3.再找不到 去环境变量去找


07db23d9dcd142eda151cb0203c91495.png


node_modules/bin中 有三个vite文件。为什么会有三个文件呢?


# unix Linux macOS 系默认的可执行文件,必须输入完整文件名
vite
# windows cmd 中默认的可执行文件,当我们不添加后缀名时,自动根据 pathext 查找文件
vite
# Windows PowerShell 中可执行文件,可以跨平台
vite


我们使用windows 一般执行的是第二个


MacOS Linux 一般是第一个

目录
相关文章
|
10天前
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
|
12天前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
50 0
|
13天前
|
JavaScript 开发者
[译] 监听第三方 Vue 组件的生命周期钩子
[译] 监听第三方 Vue 组件的生命周期钩子
|
13天前
|
JavaScript 前端开发
[译] 复用 Vue 组件的 6 层手段
[译] 复用 Vue 组件的 6 层手段
|
14天前
|
JavaScript API
vue 批量自动引入并注册组件或路由
vue 批量自动引入并注册组件或路由
|
22天前
|
JavaScript
Vue学习之--------组件自定义事件(绑定、解绑)(2022/8/21)
这篇文章介绍了Vue中组件自定义事件的绑定和解绑方法,通过代码实例详细说明了在父子组件间如何传递数据,包括使用`$emit`触发事件、`$on`和`$off`绑定和解绑事件,以及在实际项目中的应用和调试技巧。
Vue学习之--------组件自定义事件(绑定、解绑)(2022/8/21)
|
22天前
|
JavaScript 程序员 开发者
vue组件的使用与基础知识你真的完全明白吗?
【8月更文挑战第16天】vue组件的使用与基础知识你真的完全明白吗?
33 3
vue组件的使用与基础知识你真的完全明白吗?
|
10天前
|
存储 JavaScript
vue组件的五种传值方法(父子\兄弟\跨组件)
vue组件的五种传值方法(父子\兄弟\跨组件)
|
24天前
|
JavaScript
Vue学习之--------深入理解Vuex之多组件共享数据(2022/9/4)
这篇文章通过一个实际的Vue项目案例,演示了如何在Vuex中实现多组件间共享数据。文章内容包括在Vuex的state中新增用户数组,创建Person.vue组件用于展示和添加用户信息,以及在Count组件中使用Person组件操作的数据。通过测试效果展示了组件间数据共享和状态更新的流程。
Vue学习之--------深入理解Vuex之多组件共享数据(2022/9/4)
|
13天前
|
JavaScript 前端开发 Serverless
[译] VueJS 中更好的组件组合方式
[译] VueJS 中更好的组件组合方式

推荐镜像

更多