VUE之旅—day3

news2024/11/13 9:27:40

工程化开发和脚手架Vue CLI

开发Vue的两种方式:

  1. 核心包创痛开发模式:基于html/css/js文件,直接引入核心包,开发Vue。

  2. 工程化开发模式:基于构建工具(例如:webpack)的环境中开发Vue。

    源代码→自动化编译压缩组合→运行的代码

    意思即为 源代码(es6语法/typescript/less/sass)通过自动化编译压缩组合(webpack配置)转换成运行大代码(js/css)

    存在的问题:

    1. webpack配置不简单
    2. 雷同基础配置
    3. 缺乏统一标准

    解决方案:需要一个工具,生成标准化的配置

Vue CLI基本介绍

VueCLI是Vue官方提供的一个全局命令工具。

可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】

好处:

  1. 开箱即用,零配置
  2. 内置babel等工具
  3. 标准化

使用步骤:

1.全局安装(一次):yarn global add @vue/cli或 npm i @vue/cli -g

2.查看Vue 版本:vue–version

3.创建项目架子:vuecreateproject-name(项目名-不能用中文)

4.启动项目:yarn serve 或 npm run serve(找package.json)

在这里插入图片描述

脚手架目录文件介绍&项目运行流程

在这里插入图片描述

组件化开发&根组件

  1. 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为。

    好处:便于维护,利于复用→提升开发效率

    组件分类:普通组件、根组件

  2. 根组件:所有应用最上层组件,包裹所有普通小组件。

    语法高亮插件 Vetur

    一个根组件App.vue,包含三个部分:

    • template结构(只能有一个根节点)
    • style样式(可以支持less,需要安装包less和less-loader)
    • script行为

在这里插入图片描述

<template>
  <div id="app" @click="fn()">
   我是一个盒子
   <div class="box"></div>
  </div>
</template>

<script>
// 导出的是当前组件的配置项
// 里面可以提供data(特殊) method computed watch 生命周期八大钩子
export default {
  created() {
  console.log("我是created");
  },
  methods: {
    fn() {
    alert('你好')
  }
 }
}
</script>

<style lang="less">
/*让style支持less
1.给style加上  lang="less"
2.安装依赖包 less 和 less-loader
  yarn add less less-loader -D(开发依赖)
*/
#app {
 width:300px;
 height: 300px;
 background-color: pink;
 .box{
  width:100px;
 height: 100px;
 background-color: rgb(145, 181, 209);
 }
}
</style>

普通组件的注册使用

组件注册的两种方式:

  1. 局部注册:只能在注册的组件内使用
    • 创建.vue文件(单文件组件)
    • 在使用的组件内导入,并局部注册 components:{组件名:组件对象}
  2. 全局注册:所有组件内都能使用
    • 创建.vue文件(单文件组件)
    • main.js内导入,并全局注册Vue.component(组件名,组件对象)

使用:当成HTML标签使用 <组件名></组件名>

注意:组件名规范→大驼峰命名法,如MyHeader

技巧:一般都用局部注册,如果发现确实是通用组件,再抽离到全局。

局部注册

在这里插入图片描述

App.vue

<template>
  <div class="vue">
    <!-- 头部组件 -->
    <MyHeader></MyHeader>
    <!-- 主体组件 -->
    <MyMain></MyMain>
    <!-- 尾部组件 -->
    <MyFooter></MyFooter>
  </div>
</template>

<script>
import MyFooter from './components/MyFooter.vue'
import MyHeader from './components/MyHeader.vue'
import MyMain from './components/MyMain.vue'
export default {
  components: {
  MyHeader,
  MyMain,
  MyFooter
}
}
</script>

<style>
.vue{
  width: 400px;
  height: 500px;
  background-color: pink;
  padding: 20px;
  font-size: 20px;
  margin: 0 auto;
  color: rgb(72, 77, 81);
}
</style>

components中的MyHeader.vue

<template>
  <div class="my-header">我是MyHeader</div>
</template>

<script>
export default {

}
</script>

<style>
.my-header{
   width: 100%;
  height: 80px;
  background-color: rgb(122, 186, 154);
  text-align: center;
  line-height: 80px;
}
</style>

components中的MyMain.vue

<template>
  <div class="my-main">我是MyMain</div>
</template>

<script>
export default {

}
</script>

<style>
.my-main{
 width: 100%;
  height: 300px;
  background-color: rgb(147, 198, 242);
  margin: 10px 0;
  text-align: center;
  line-height: 300px;
}
</style>

components中的MyFooter.vue

<template>
  <div class="my-footer">我是MyFooter</div>
</template>

<script>
export default {

}
</script>

<style>
.my-footer{
  width: 100%;
  height: 80px;
  background-color: rgb(242, 225, 147);
  text-align: center;
  line-height: 80px;
}
</style>
全局注册

在这里插入图片描述

在需要使用的地方直接标签导入即可。

组件拆分

页面开发思路:

  1. 分析页面,按模块拆分组件,搭架子(局部或全局注册)

  2. 根据设计图,编写组件html结构cSs样式(已准备好)

  3. 拆分封装通用小组件(局部或全局注册)

    将来→通过js 动态渲染,实现功能

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

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

相关文章

『大模型笔记』GraphRAG:利用复杂信息进行发现的新方法!

GraphRAG:利用复杂信息进行发现的新方法! 文章目录 一. GraphRAG:利用复杂信息进行发现的新方法!1. 将RAG应用于私人数据集2. 整个数据集的推理3. 创建LLM生成的知识图谱4. 结果指标5. 下一步二. 参考文献微软官方推文:https://www.microsoft.com/en-us/research/blog/gra…

招投标信息采集系统:让您的企业始终站在行业前沿

一、为何招投标信息如此关键&#xff1f; 在经济全球化的大背景下&#xff0c;招投标活动日益频繁&#xff0c;成为企业获取项目、拓展市场的主流方式之一。招投标信息采集&#xff0c;作为企业战略决策的前置环节&#xff0c;其重要性不言而喻。它不仅关乎企业能否第一时间发…

实时消息推送系统,写得太好了!

websocket 协议是在 http 协议上的一种补充协议&#xff0c;是 html5 的新特性&#xff0c;是一种持久化的协议。其实 websocket 和 http 关系并不是很大&#xff0c;不过都是属于应用层的协议&#xff0c;接下来我们就开始实战。 websocket 定时推送 本教程基于 springboot …

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 问题概述 📒📒 解决方案 📒🔖 方法一🔖 方法二🔖 方法三⚓️ 相关链接 🚓️📖 介绍 📖 在群晖(Synology)NAS设备上使用Docker时,我们可能会遇到查询Docker注册表失败,无法拉取Docker镜像的问题。这种情况…

一文理解 Treelite,Treelite 为决策树集成模型的部署和推理提供了高效、灵活的解决方案

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、什么是 Treelite&#xff1f; Treelite 是一个专门用于将决策树集成模型高效部署到生产环境中的机器学习模型编译器&#xff0c;特别适合处理大批量数据的推理任务&#xff0c;能够显著提升推理性能…

《RWKV》论文笔记

原文出处 [2305.13048] RWKV: Reinventing RNNs for the Transformer Era (arxiv.org) 原文笔记 What RWKV(RawKuv):Reinventing RNNs for the Transformer Era 本文贡献如下&#xff1a; 提出了 RWKV 网络架构&#xff0c;结合了RNNS 和Transformer 的优点&#xff0c;同…

vscode调试教程

VSCode调试 VSCode Debuggers VSCode使用launch.json进行细粒度的控制&#xff0c;可以启动程序或将其附加到复杂的调试场景中 打开Run and Debug视图Ctrl Shift D 点击create a launch.json file&#xff0c;选择C(GDB/LLDB) 会在工作目录自动创建.vscode/launch.json文…

单对以太网连接器多场景应用

单对以太网连接器应用场景概述 单对以太网&#xff08;Single Pair Ethernet&#xff0c;简称SPE&#xff09;作为一种新兴的以太网技术&#xff0c;以其独特的优势在多个领域得到了广泛的应用。SPE通过单对电缆进行数据传输&#xff0c;支持高速数据传输&#xff0c;同时还能…

Python学习笔记33:进阶篇(二十二)pygame的使用之image模块

前言 基础模块的知识通过这么长时间的学习已经有所了解&#xff0c;更加深入的话需要通过完成各种项目&#xff0c;在这个过程中逐渐学习&#xff0c;成长。 我们的下一步目标是完成python crash course中的外星人入侵项目&#xff0c;这是一个2D游戏项目。在这之前&#xff…

文献解读-基准与方法研究-第十六期|《GeneMind 公司的 GenoLab M 测序平台 WGS 和 WES 数据基准测试》

关键词&#xff1a;基准与方法研究&#xff1b;基因测序&#xff1b;变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;Accuracy benchmark of the GeneMind GenoLab M sequencing platform for WGS and WES analysis标题&#xff08;中文&#xf…

无法连接Linux远程服务器的Mysql,解决办法

问题描述 如果是关闭虚拟机之后&#xff0c;二次打开无法连接Mysql&#xff0c;则可尝试一下方法进行解决 解决方法 关闭虚拟机的防火墙 1&#xff1a;查看防火墙状态 systemctl status firewalld 一下显示说明防火墙是启动的状态 2&#xff1a;关闭防火墙 systemctl st…

Java线程死锁及解决方法

多线程环境下&#xff0c;死锁即两个或两个以上的线程去争夺同一个共享资源&#xff0c;而导致互相等待的情况。 要产生死锁&#xff0c;必须满足如下四个条件&#xff1a; 互斥条件&#xff0c;共享资源x和y只能被一个线程占有请求和保持条件&#xff0c;T1持有x&#xff0c…

7.9数据结构

思维导图 作业 doubleloop.h #ifndef __DOUBLELOOP_H__ #define __DOUBLELOOP_H__#include <stdio.h> #include <stdlib.h>typedef int datatype; typedef struct node {union{int len;datatype data;};struct node *pri;//前驱指针struct node *next;//后继指针…

Docker安装BRIA-RMBG-1.4模型,背景去除

目录 前言 模型描述 训练数据 定性评估 docker安装 运行 结论 Tip&#xff1a; 问题1&#xff1a; 问题2&#xff1a; 前言 BRIA 背景去除 v1.4 模型 RMBG v1.4 是我们最先进的背景去除模型&#xff0c;旨在有效地将各种类别和图像类型的前景与背景分开。该模型已在…

springboot会议室管理系统-计算机毕业设计源码50331

目 录 摘要 1 绪论 1.1 开发背景与意义 1.2国内外研究现状 1.3 相关技术、工具简介 1.3.1 MySQL数据库的介绍 1.3.2 B/S架构的介绍 1.3.3 Java语言 1.3.4 SpringBoot框架 1.4论文结构与章节安排 2 会议室管理系统需求分析 2.1 可行性分析 2.1.1 技术可行性分析 2…

昇思25天学习打卡营第21天|LSTM+CRF序列标注

1. 学习内容复盘 概述 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名…

一文实践强化学习训练游戏ai--doom枪战游戏实践

一文实践强化学习训练游戏ai–doom枪战游戏实践 上次文章写道下载doom的环境并尝试了简单的操作&#xff0c;这次让我们来进行对象化和训练、验证&#xff0c;如果你有基础&#xff0c;可以直接阅读本文&#xff0c;不然请你先阅读Doom基础知识&#xff0c;其中包含了下载、动作…

C++中的多重继承和虚继承:横向继承、纵向继承和联合继承;虚继承

多重继承 A.横向多重继承&#xff1a; B.纵向多重继承&#xff1a; C.联合多重继承&#xff1a; 因为 single 和 waiter 都继承了一个 worker 组件&#xff0c;因此 SingingWaiter 将包含两个 worker 组件&#xff0c;那么将派生类对象的地址赋给基类指针将出现二义性 那么如何…

AdaBoost集成学习算法理论解读以及公式为什么这么设计?

本文致力于阐述AdaBoost基本步骤涉及的每一个公式和公式为什么这么设计。 AdaBoost集成学习算法基本上遵从Boosting集成学习思想&#xff0c;通过不断迭代更新训练样本集的样本权重分布获得一组性能互补的弱学习器&#xff0c;然后通过加权投票等方式将这些弱学习器集成起来得到…

代码随想录——合并区间(Leecode LCR74)

题目链接 贪心 排序 class Solution {public int[][] merge(int[][] intervals) {ArrayList<int[]> res new ArrayList<>();// 先将数组按照左区间排序Arrays.sort(intervals, new Comparator<int[]>() {public int compare(int[] intervals1, int[] in…