Vue——day13之脚手架

news2024/9/25 19:20:27

目录

概述

创建一个脚手架

首先下载脚手架

创建文件

脚手架中代码分析

main.js

index.html

render

为什么要用render

脚手架的默认配置

总结


概述

        Vue的脚手架是一个快速构建Vue项目的工具,它集成了一系列的开发工具和配置,提供了一种标准化的项目结构和开发流程,使得开发者可以更加方便、快速地搭建和开发Vue项目。Vue官方推出的脚手架工具是Vue CLI(Command Line Interface),通过使用Vue CLI,开发者可以通过简单的命令行指令来创建、开发和打包Vue项目。Vue脚手架提供了一套默认的项目模板和配置,同时也支持自定义配置,开发者可以根据项目需求进行相应的配置和扩展。通过使用Vue脚手架,开发者可以省去繁琐的配置步骤,更加专注于业务逻辑的开发。

创建一个脚手架

首先下载脚手架

打开CMD

npm install -g @vue/cli@版本号

例如:npm install -g @vue/cli@4.5.13

下载完成之后重启CMD输入下面的命令

创建文件

vue create vue_test

此时他会让你选择,我这里是已经选择好的界面

因为我是使用Vue2,所以我就选择Vue2了,如果你们选择Vue3那就选。

这样就创建成功了,然后我们进入  vue_test这个文件夹再执行命令

npm run serve

就可以启动这个脚手架了了,里面有一些初识代码,启动后效果如下

如果看到下面的页面就说明成功创建啦!!!!


脚手架中代码分析

main.js

/**
 * 该文件是整个项目的入口文件
 */

// 引入Vue
import Vue from 'vue'
// 引入App组件,它是所有组件的父组件
import App from './App.vue'
// 关闭Vue的生产提示
Vue.config.productionTip = false

// 创建Vue示例对象
new Vue({
  el:'#app',
  // 将App组件放入容器中
  render: h => h(App),
})

index.html

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <!-- 针对IE浏览器的特殊配置,让IE浏览器以最高的渲染级别渲染页面 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 开启移动端的理想视口 -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <!-- 配置页签图标 -->
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <!-- 配置网页的标题 -->
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <!-- 当浏览器不支持JS的时候, noscript中的元素就会被渲染-->
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>

    <!-- 容器 -->
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

render

        在Vue脚手架中的render函数是一个用来生成DOM结构的函数。在Vue.js中,我们可以通过编写模板来描述我们的页面,然后Vue会根据模板生成相应的DOM结构。而在Vue脚手架中,可以选择使用render函数来代替模板。

        render函数接受一个函数作为参数,这个函数返回一个虚拟节点(VNode),Vue会根据这个虚拟节点来生成实际的DOM结构。通过在render函数中编写JavaScript代码,我们可以更灵活地控制DOM的生成过程。

        例如,下面是一个简单的Vue脚手架中的render函数的示例:

import Vue from 'vue';

new Vue({
  render: function (h) {
    // 返回一个虚拟节点,用于生成DOM结构
    return h('div', 'Hello World');
  },
}).$mount('#app');

        在上面的例子中,我们在render函数中通过调用h方法创建了一个div元素,并且将Hello World作为文本内容传递给div元素。然后,render函数返回了这个虚拟节点,Vue会根据这个虚拟节点生成相应的DOM结构,最后将DOM结构挂载到idapp的元素上。

        使用render函数可以更直观地描述我们的页面结构,也可以更灵活地控制DOM的生成过程,适用于更复杂的页面需求。但对于简单的页面,使用模板可能会更加方便和直观。

为什么要用render

Vue有不同版本,其中包括vue.js和vue.runtime.xxx.js。它们之间的区别在于功能的不同:

  1. vue.js是完整版的Vue,包含Vue的核心功能和模板解析器。这意味着在使用vue.js时,可以使用Vue提供的模板语法来编写页面的模板,并由Vue自动编译和解析模板。

  2. vue.runtime.xxx.js是运行版的Vue,只包含Vue的核心功能,没有模板解析器。因此,在使用vue.runtime.xxx.js时,不能直接使用template配置项来编写模板。相反,需要使用render函数接收到的createElement函数来通过JavaScript代码来定义页面的结构和内容。

        所以,对于vue.runtime.xxx.js版本,需要手动编写render函数,并在函数中使用createElement函数来创建虚拟节点(VNode)来描述页面的结构。这样,Vue就可以根据这些虚拟节点来生成实际的DOM结构。这种方式更加灵活,适用于需要更精细控制的情况。

总结一下:

  • vue.js是完整版的Vue,包含核心功能和模板解析器,可以直接使用模板进行开发。
  • vue.runtime.xxx.js是运行版的Vue,只包含核心功能,需要手动编写render函数,并使用createElement函数来创建虚拟节点描述页面结构。不能使用模板配置项来编写模板。


脚手架的默认配置

Vue脚手架隐藏了所有webpack相关的配置,若想看具体的webpack配置,可以执行

vue inspect > output.js

这个命令

然后就会有一个output.js文件可以看见啦

总结

这篇文章挺水的,因为逻辑不清晰嘿嘿

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MFC修改控件ID的详细说明

控件的ID可以在该对话框的.rc中修改 首先需要开启资源视图 然后在资源视图中打开该对话框 选中某个控件&#xff0c;就可以在属性面板中修改ID了 在此处修改ID后&#xff0c;对应Resource.h中也会发生变化 若在.rc中创建了一个控件时&#xff0c;Resource.h中会生成一个对应…

XML 保存 显示XML 方式 encoding=“UTF8“

XML 保存 encoding“UTF8” 将文件另存为 编码 UTF8 &#xff0c; 跟encoding“UTF8” 保持一致 。

NVDLA专题13:NVDLA软件部分设计和Compiler library

NVDLA拥有完整的软件生态&#xff0c;包括从编译神经网络到推理的支持。这个生态的一部分包括on-device软件栈&#xff08;software stack&#xff09;&#xff0c;它是NVDLA开源版本的一部分。此外&#xff0c;英伟达将提供完整的training infrastructure&#xff0c;用来构建…

基于yolov8的肺炎检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的肺炎检测系统是一项前沿的深度学习应用&#xff0c;该系统利用YOLOv8这一先进的目标检测算法&#xff0c;能够高效地分析病人的X射线肺部图像&#xff0c;从而快速识别出肺炎的征状。YOLOv8作为Ultralytics公司开发的最新版本&#xff0c;引入了多项…

猎板通信PCB动态:苹果16系列多款设备上线,PCB供应商的机遇与挑战!

在最新的苹果供应链动态中&#xff0c;苹果公司对于PCB供应商的选择标准非常严格&#xff0c;主要考虑因素包括技术能力、生产规模、质量控制、成本效益、供应链稳定性以及环境和社会责任等。随着苹果产品技术的不断进步&#xff0c;PCB供应商也需要具备相应的技术升级能力&…

安泰功率放大器在微纳光固化3D打印中的具体应用

随着科技的进步&#xff0c;3D打印技术已经渗透到各个领域&#xff0c;尤其是微纳光固化3D打印技术。这种技术结合了光学、材料科学和微电子学的知识&#xff0c;能够制造出具有微米级精度的复杂物体。本文Aigtek安泰电子将带你探索功率放大器在微纳光固化3D打印中的应用&#…

太简单,用这个例子详解TCP协议你肯定不知道

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 下午好&#xff0c;我的网工朋友 当你在微信上给你的朋友发送一条消息&#xff0c;或者在淘宝浏览商品时&#xff0c;这些信息是如何安全、准确地…

LLM - 理解 多模态大语言模型 (MLLM) 的架构与相关技术 (二)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142063880 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 多模态…

CDGA|推动数据治理与传统产业深度融合:策略与实践路径

在数字化浪潮席卷全球的今天&#xff0c;数据已成为推动经济社会发展的关键生产要素。传统产业&#xff0c;作为国民经济的基石&#xff0c;正面临着前所未有的转型挑战与机遇。如何让数据治理这一现代管理理念与实践方法深度融入传统产业&#xff0c;促进其转型升级与高质量发…

K均值聚类

根据到给点样本的距离&#xff0c;来聚类。 1.曼哈顿距离、 2.欧几里得距离 直线距离 3.切比雪夫距离 4.闵氏距离 5.余弦相似度 对数据大小/长度等不关注&#xff0c;只关注相似度。 6.汉明距离 二进制距离 二、密度聚类 DBSCAN 前提是样本是根据紧密程度分布的。 先用超参…

Go语言概述

1.Go语言的特点 1&#xff09;从语言层面支持并发&#xff0c;实现简单 2&#xff09;goroutine&#xff0c;轻量级线程&#xff0c;可实现大并发处理&#xff0c;高效利用多核 3&#xff09;垃圾回收机制&#xff0c;内存自动回收&#xff0c;不需要开发人员管理 4&#xff0…

【网络】DNS协议、ICMP协议

DNS协议与ICMP协议 文章目录 1.DNS协议1.1DNS背景1.2域名简介1.3域名解析过程&#xff08;了解&#xff09;1.4使用dig工具分析DNS过程 2.ICMP协议2.1ICMP的功能2.2ping命令2.3traceroute命令 1.DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协…

idear获取git项目

最近想下载个ruoyi项目来包装简历&#xff0c;结果打开idear总是上一个项目&#xff0c;找不到get for vcs只好自己捣鼓了&#xff0c;顺便记录留着下次用。 步骤&#xff1a; 1. 2. 3.输入我们想访问的地址 eg: 点击克隆&#xff0c;我们就能获取项目到本地了。

C语言 | Leetcode C语言题解之第396题旋转函数

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int maxRotateFunction(int* nums, int numsSize){int f 0, numSum 0;for (int i 0; i < numsSize; i) {f i * nums[i];numSum nums[i];}int res f;for (int i numsSize - 1; i &g…

教师节重磅福利!《动手学强化学习》作者亲自带你学强化学习

作为大模型的核心技术之一&#xff0c;强化学习越来越受到人们的重视。强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习的一个领域&#xff0c;主要研究智能主体&#xff08;agent&#xff09;在环境中应该怎样采取行动以最大化所获得的累积奖励。目前强…

【视频教程】GEE遥感云大数据在林业中的应用与典型案例实践

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

运动耳机精选分享,热门骨传导耳机运动好物推荐!

因为骨传导耳机独特的佩戴方式和声音的传播方式&#xff0c;受到了小耳、油耳以及运动爱好者的的喜爱&#xff0c;但也由于市面上的骨传导耳机品牌越来越多&#xff0c;很多朋友不知道该怎么选择&#xff0c;今天我挑选出市面上体验感较好&#xff0c;各方面比较出色的骨传导给…

M,儿母,阿母

英文字母M&#xff0c;音义通汉语&#xff1a;儿母。近单音“母”、“木”。 母&#xff0c;阴阳五行之阴阳之阴的典型代表&#xff0c;代表生化能力或生化之道&#xff0c;为成就者&#xff0c;象征生命缘起&#xff0c;代表生化之源。母&#xff0c;阴性&#xff0c;雌性&am…

COCOS:(飞机大战03)绑定触摸方法,控制主角的移动和移动边界的限制

飞机大战知识点总结 1.创建Player.ts文件&#xff0c;把该文件添加到Player组件上 2.编写Player.ts import { _decorator, Component, EventTouch, Input, input, Node, Vec3 } from cc; const { ccclass, property } _decorator; ccclass(Player) export class Player exte…

2024年性价比蓝牙耳机怎么选?四款爆买百元耳机品牌推荐!

在科技日新月异的今天&#xff0c;越来越多的消费者选择无线蓝牙耳机&#xff0c;以摆脱有线耳机的束缚&#xff0c;享受更加自由的智能耳机使用体验。面对市场上众多的耳机品牌&#xff0c;究竟2024年性价比蓝牙耳机怎么选&#xff1f;&#xff0c;为了帮助大家选购合适的蓝牙…