(二十二)Vue之脚手架的使用

news2024/11/18 3:47:24

文章目录

  • 基本使用
  • 脚手架文件结构
  • 分析mian.js文件
    • 关于不同版本的Vue
    • 关于render函数
  • 关于vue.config.js配置文件
  • 关于index.html文件
  • 演示程序

Vue学习目录

上一篇:(二十一)Vue之单文件组件

Vue 脚手架是 Vue 官方提供的标准化开发工具(开发平台)。脚手架是基于webpack。
官方文档: https://cli.vuejs.org/zh/。

基本使用

具体步骤:

  • 第一步(仅第一次执行):全局安装@vue/cli。
    命令:npm install -g @vue/cl
    若出现‘npm’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。则需要安装nodejs
    链接: https://nodejs.org/ 直接点下一步就行了
    如出现下载缓慢请配置 npm 淘宝镜像:npm config set registry https://registry.npm.taobao.org
  • 第二步:切换到你要创建项目的目录,然后使用命令创建项目
    命令:vue create 项目名
  • 第三步:启动项目
    命令:npm run serve

注意:Vue 脚手架隐藏了所有 webpack 相关的配置,若想查看具体的 webpakc 配置,
可以执行:vue inspect > output.js

脚手架文件结构

├── node_modules 
├── public
│   ├── favicon.ico: 页签图标
│   └── index.html: 主页面
├── src
│   ├── assets: 存放静态资源
│   │   └── logo.png
│   │── component: 存放组件
│   │   └── HelloWorld.vue
│   │── App.vue: 汇总所有组件
│   │── main.js: 入口文件
├── .gitignore: git版本管制忽略的配置
├── babel.config.js: babel的配置文件
├── package.json: 应用包配置文件 
├── README.md: 应用描述文件
├── package-lock.json:包版本控制文件

除此之外,使用npm run build命令可以打包项目,打包项目是把所有不是html、css、js文件都转换为正常浏览器能显示的html、css、js文件。会生成一个dist文件夹,这个文件夹是打包之后的文件夹。

分析mian.js文件

mian.js文件是项目的入口文件:

import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({
  render: h => h(App),
}).$mount('#app')

关于不同版本的Vue

在这里插入图片描述

通过vue中的pack.json知道,mian.js文件引入的vue是残缺版,残缺了模板解析器
完全版vue需要这么引入

import Vue from 'vue/dist/vue'
  1. vue.js与vue.runtime.xxx.js的区别:
    1. vue.js是完整版的Vue,包含:核心功能 + 模板解析器。
    2. vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器。
  2. 因为vue.runtime.xxx.js没有模板解析器,所以不能使用template这个配置项,需要使用render函数接收到的createElement函数去指定具体内容。

关于render函数

正常的配置是通过el+template配置项把App这个组件放入到容器之中

正常的说,在vue中我们使用模板HTML语法组建页面的,使用render函数我们可以用js语言来构建DOM。

render源码:
在这里插入图片描述
因为vue是虚拟DOM,所以在拿到template模板时也要转译成VNode的函数,而用render函数构建DOM,vue就免去了转译的过程。

当使用render函数描述虚拟DOM时,vue提供一个函数,这个函数是就构建虚拟DOM所需要的工具。官网上给它起了个名字叫createElement。还有约定的简写叫h。

怎么使用?
render函数会受到一个createElement函数,用来创建元素,在render函数返回一个createElement函数就可以创建
例如:

  render(createElement) {
    return createElement('h1','你好啊!')
  }

效果:
在这里插入图片描述
那么我们就可以将App这个组件放入DOM,不简写形式就是:

render(createElement) {
    return createElement(App)
  }

简写形式:

render: h => h(App)

关于vue.config.js配置文件

  1. 使用vue inspect > output.js可以查看到Vue脚手架的默认配置。
  2. 使用vue.config.js可以对脚手架进行个性化定制,详情见:https://cli.vuejs.org/zh
    例如关闭脚手架的语法检查lintOnSave:false,//关闭语法检查

注意,vue.config.js配置文件一旦发生改变,需要重新启动脚手架才能生效

关于index.html文件

这个文件里面具体配置为:

<!DOCTYPE html>
<html lang="en">
  <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">
    <!--
        配置页签图标
        <%=BASE_URL%>表示public目录
    -->
    <link rel="icon" href="<%=BASE_URL%>favicon.ico">
    <!--
        配置网页标题
        <%= htmlWebpackPlugin.options.title %>表示会去package.json文件去找name做为标题
    -->
    <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>

演示程序

初始化脚手架的默认例子是vue官方给的一个页面
我们把之前单文件组件例子复制到里面
效果:
在这里插入图片描述
点击显示学校名按钮:
在这里插入图片描述
点击显示学生姓名:
在这里插入图片描述

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

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

相关文章

数据库,计算机网络、操作系统刷题笔记17

数据库&#xff0c;计算机网络、操作系统刷题笔记17 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle…

圣诞节,来棵Golang的圣诞树吧

一、前言 2022年的圣诞到啦&#xff0c;不知道大家都&#x1f411;了吗&#xff01;博主已经挺进了决赛圈&#xff0c;希望可以继续稳如老狗&#xff01;本来今天是想继续深挖一下git&#xff0c;但打开博客看到这个圣诞活动&#xff0c;还可以赢徽章&#xff0c;那我肯定要把…

C++基础之提高5

C提高编程 本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具&#xff0c;大大提高复用性 例如生活中的模板 一寸照片模板&#xff1a; PPT模板&#xff1a; 模板的特点&#xff1a; 模板不可以直…

Maven 运行性期间不报错

Maven 运行性期间不报错目录概述需求&#xff1a;设计思路实现思路分析1.正确引入maven问题2.编译maven 无问题3.运行出错了参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a…

第14章_MySQL事务日志

第14章_MySQL事务日志第14章_MySQL事务日志1. redo日志1.1 为什么需要REDO日志1.2 REDO日志的好处、特点1.3 redo的组成1.5 redo log的刷盘策略1.6 不同刷盘策略演示1.7 写入redo log buffer 过程1.8 redo log file1. 相关参数设置2. 日志文件组3. checkpoint1.9 redo log小结2…

python基础语法——变量和变量类型

文章目录变量命名规则使用变量和修改变量变量的类型整数 int浮点数 float字符串 string布尔动态类型特征变量命名规则 软性规则&#xff1a; 1.给变量命名的时候&#xff0c;尽量使用描述性的单词来表示&#xff0c;尽量通过名字来表现出变量的作用 2. 当我们使用一个单词描述…

实战讲解时区处理基于SimpleDateFormat和LocalDateTime

1 缘起 最近在做海外的项目&#xff0c; 需要根据时区转换时间&#xff0c;起初&#xff0c;项目使用的时区格式为{area}/{city}&#xff0c; 可直接使用SimpleDateFormat处理&#xff0c;后面由于要添加其他地区&#xff0c; 统一将时区改为UTC格式&#xff0c;此时&#xff…

AndroidQ兼容性适配指南

AndroidQ Android 10 中的隐私权变更 隐私权变更受影响的应用缓解策略✅分区存储 针对外部存储的过滤视图&#xff0c;可提供对特定于应用的文件和媒体集合的访问权限访问和共享外部存储中的文件的应用使用特定于应用的目录和媒体集合目录 了解详情✅增强了用户对位置权限的控…

Viewer.js点击按钮放大图片用法

1、Viewer.js点击按钮放大图片用法 <div onclick"getHideBig(hide_img_weight1)" id"btn_img_weight1">查看图片</div> <img src"tibet-3.jpg" id"hide_img_weight1" style"display: none;"/><script…

异常的认识 -(java)

文章目录前言1. 什么时异常&#xff1f;2. 异常的分类2.1 运行时异常/非受查异常2.2 编译时异常/受查异常3. 处理异常3.1 抛出异常3.2 声明异常3.3 try catch处理异常总结✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来&#xff01; 编程真是一件很奇妙的东西。你只是…

java 之 git 手把手教学

什么是git? Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛使用。 学完之后能干什么&#xff1f; Git 简介 Git 代码托管服务 Git 常用命令 git add前…

C++:STL:常用容器(上):vector

1&#xff1a;vector基本概念 功能&#xff1a;vector 数据结构和数组非常相似&#xff0c;也称为 单端数组. vector 与普通数组区别&#xff1a; 1&#xff1a; 数组是静态空间&#xff0c;而 vector 可以动态扩展 2&#xff1a; 动态扩展&#xff1a;并不是在原空间之后接新…

Java 集合学习笔记:HashMap - 迭代器

Java 集合学习笔记&#xff1a;HashMap - 迭代器iteratorsHashIteratorhasNextnextNoderemoveKeyIteratorValueIteratorEntryIteratorspliteratorsHashMapSpliteratorgetFence 获取拆分器的右边界estimateSize 估计剩余元素的个数KeySpliterator1. trySplit 尝试拆分2. forEach…

AQS学习

1.1 AQS 简单介绍 AQS 的全称为&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff0c;这个类在 java.util.concurrent.locks 包下面。 AQS 是一个用来构建锁和同步器的框架&#xff0c;使用 AQS 能简单且高效地构造出应用广泛的大量的同步器&#xff0c; 比如我们提…

多协议标签交换MPLS(计算机网络-网络层)

目录 MPLS 的优势 MPLS 首部的位置与格式 MPLS 首部的位置与格式 MPLS 转发等价类 MPLS 的优势 MPLS 的真正优点在于它的流量管理能力&#xff1a;提供沿多条路径转发分组的能力&#xff0c;并能灵活地为某些流量指定其中的一条路径 这种能力被称为显示路由&#xff0c;其…

占道经营出店摆摊监测识别 python

占道经营出店摆摊监测识别通过python基于yolov7网络架构深度学习模型&#xff0c;对现场画面中检测到出店摆摊违规经营或者流动商贩占道经营时&#xff0c;立即抓拍告警同步后台。OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV…

【Django】第四课 基于Django超市订单管理系统开发

概念 本文在上一文之上&#xff0c;针对管理员&#xff0c;经理&#xff0c;普通员工身份的用户操作订单管理模块功能。 功能实现 该功能也是业务功能模块&#xff0c;管理员不具备操作权限&#xff0c;普通员工需要对超市所合作的供应商进行进货&#xff0c;因此普通员工可…

数据结构与算法——Java实现排序算法(二)

数据结构与算法——Java实现排序算法&#xff08;一&#xff09;_我爱布朗熊的博客-CSDN博客 七、希尔排序&#xff08;自我感觉有点难理解&#xff09; 为了解决直接插入排序所带来的弊端&#xff0c;我们接来下看一下希尔排序 希尔排序也是一种插入排序&#xff0c;简单插入排…

口罩佩戴监测系统 yolo

口罩佩戴监测系统通过yolo网络对现场画面人员口罩佩戴情况进行识别检测。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0c;用于实时进行目标检测。该算法将单个神经网络应用于完整的图像&#xff0c;然后将图像划分为多个区域&#x…

科技交流英语(2022秋)Unit 5 test

科技交流英语&#xff08;2022秋&#xff09;Unit 5 test 简介 由电子科技大学组织开设&#xff0c;授课教师为李京南、庞慧、刘兆林等5位老师。 课程介绍 英语广泛用于工程技术领域的国际交流。如何使用简洁的语言清楚地传递信息是工程师在国际舞台上常常面临的问题。本课…