Vue(7)——工程化开发

news2024/9/21 11:25:42

目录

工程化开发

组件化开发

普通组件的注册使用

局部注册

全局注册

组件三大组成部分说明 

template

style

script

组件通信 

父子关系

prpo

prpos校验

类型校验

其他校验 

prop与data、单向数据流 


工程化开发

工程化开发模式:基于构建工具的环境中开发Vue。

Vue CLI是官方提供的一个全局命令工具。可以快速创建一个开发Vue项目的标准化基础架子。

使用步骤:

  1. 全局安装:yarn global add @vue/cli 或 npm i @vue/cli -g
  2. 查看vue版本:vue --version
  3. 创建项目架子:vue create project-name(项目名)
  4. 启动项目:yarn server 或 npm run serve

其中创建架子时等待的时间比较久...。最后使用npm启动项目。 打开浏览器搜localhost:8080或127.0.0.1:8080。

如果为这个界面则表示启动成功。

通过脚手架创建的目录如下:

组件化开发

组件化开发:一个页面可以拆分一个个组件,每个组件有自己独立的结构,样式,行为。

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

组件分类:普通组件,根组件。

根组件:整个应用最上层的组件,包裹所有小组件。


App.vue文件(单文件组件)的三个组成部分:

经过修改

<template>
  <div class="App">
    <div class="box" @click="fn">

    </div>
  </div>
</template>

<script>
export default{
  methods:{
    fn(){
      alert('ok')
    }
  }
}
</script>

<style>
.App{
  width: 300px;
  height: 300px;
  background-color: pink;
  }
  .App .box{
    width: 100px;
    height: 100px;
    background-color: skyblue;
  }
</style>


普通组件的注册使用

局部注册

:只能在注册的组件内使用

  1. 创建.vue文件
  2. 在使用的组件内导入并注册 

 在src文件夹下创建components文件夹放入组件,组件命名需遵循大驼峰命名法,否则会报错。


全局注册

:所有组件内都能使用

  1. 创建.vue文件
  2. main.js中进行全局注册

还是在components文件夹下面创建vue文件:

然后再main.js中注册:

最后在其他vue文件中使用:

 

组件三大组成部分说明 

template

只能有一个根元素

style

全局样式(默认):会影响所有的组件,很容易造成多个组件之间的问题

局部样式:scoped下样式,只作用于当前组件

原理:

  1. 给当前组件模版的所有元素,都会被添加一个自定义属性data-v-hash值,区分不同组件
  2. css选择器后面,被自动处理,添加上的属性选择器

示例:

在修改后若样式消失,可以关闭页面重新打开。。

script

el根为实例独有,data是一个函数,其他配置项一致。

一个组件的data选项必须是一个函数。保证每个组件实例,维护独立的一份数据对象。每次创建新的组件实例,都会执行一次data函数,得到一个对象。

示例:

 

data函数执行了3次,每个组件实例,维护独立的对象。 

组件通信 

组件通信指组件之间的数据传递。组件的数据时独立的,无法直接访问其他组件的数据。

组件之间的关系:

  1. 父子关系
  2. 非父子关系

父子关系

  1. 父组件通过props将数据传递给子组件
  2. 子组件利用$emit通知父组件修改更新

prpo

定义:组件上注册的一些自定义属性

作用:向子组件传递任意数量、任意类型的数据


 父传子示例:

子传父示例:


prpos校验

作用: 为组件的prop指定验证要求,不符合要求,控制台就会有错误提示。

语法:

  1. 类型校验
  2. 非空校验
  3. 默认值
  4. 自定义校验
类型校验

props:{

  校验的属性名 : 类型    //Number  String Bollean

},

示例:传入一个String值,校验是否为Number 

其他校验 

为了要进行更细致的校验,可以将属性名写成一个更完整的对象

prop与data、单向数据流 

共同点:都可以给组件提供数据。

区别:

  1. data的数据是自己的,随便改
  2. prop的数据是外部的,不能直接改,要遵循单向数据流

示例1.由自己提供数据:

示例2.接收prop传过来的数据,不能直接改:

产生报错,原因是

尝试修改外部的数据。可以添加对应的函数:

报错消失,接下来添加对应的逻辑,遵循谁的数据谁负责原则:


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

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

相关文章

LLM大模型学习:AI大模型原理、应用与未来趋势!

1. 引言 在自然语言处理&#xff08;NLP&#xff09;与人工智能&#xff08;AI&#xff09;的广袤星海中&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;宛如一颗璀璨的星辰&#xff0c;正悄然改变我们与语言和机器的互动方式。本章将引领您步入一…

Python从入门到高手1.1节-在windows中安装Python

1.1.1 为什么要安装Python解释器&#xff1f; Python是一种解释型语言&#xff0c;代码的执行需由解释器来逐行读取、转换成机器语言并执行。没有Python解释器&#xff0c;我们编写的Python代码便无法在计算机中运行。 同学们对语言翻译器一定不陌生&#xff0c;我们通过翻译器…

MySQL之DQL-分组函数

1、分组函数 1. 分组函数语法 分组函数也叫聚合函数。是对表中一组记录进行操作&#xff0c;每组只返回一个结果。我们只讲如下5个常用的分组函数&#xff1a; 分组函数 含义 MAX 求最大值 MIN 求最小值 SUM 求和 AVG 求平均值 COUNT 求个数 分组函数的语法如下…

一款企业网盘,支持多种文件存储方式如FTP,SFTP,MINIIO等以及跨平台管理(附源码)

前言 随着数字化转型的推进&#xff0c;企业越来越依赖于云端技术来存储、管理和共享重要的业务文件。传统的本地存储处理方案虽然可靠&#xff0c;但在灵活性、可访问性和协作方面显得力不从心。尤其在远程工作变得日益普遍的今天&#xff0c;如何高-效地管理分散团队之间的文…

【IEEE独立出版 | 往届快至会后2个月检索,刊后1个月检索】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024)

在线投稿&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 电子信息的出现与计算机技术、通信技术和高密度存储技术的迅速发展并在各个领域里得到广泛应用有着密切关系。作为高技术领域中重要的前沿技术之一&#xff0c;电子信息工程具有前瞻性、先导性的特点&#x…

代码随想录训练营day42|188.买卖股票的最佳时机IV,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 变成了最多可以买卖k只股票 class Solution { public:int maxProfit(int k, vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(2*k1,0));for(int i1;i<2*k1;i2){dp[0][i]-prices[0];}//初始…

【ESP32】fopen 无法创建.html文件

Long filename support设置为Long filename buffer in heap 后fopen正常创建.html文件

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件&#xff0c;可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下&#xff0c;需要转换 2.1 下载openssl https://slpr…

C#EF框架

EF概念: 实体框架&#xff08;Entity Framework&#xff09;是一种对象关系映射器&#xff08;O/RM&#xff09;&#xff0c;它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发人员通常需要编写的大多数数据访问代码的需求。ORM框架有个优势&#xff1a;解放开发人…

游戏开发| Unreal5.2-5.4接入chatGPT定制游戏NPC

引擎版本UE5.2 (也支持到5.4,有试用其它插件所以选择之前版本) 使用插件(免费) 1.VArest (插件官方介绍:Plugin that makes REST communications much easier.)可以让REST(Representational State Transfer)通信变得更加容易,涉及客户端与服务器之间通过 HTTP 协议…

帧缓冲 framebuffer

一、基本概念 framebuffer: 帧缓存、帧缓存&#xff08;显示设备&#xff09; Linux内核为显示提供的一套应用程序接口。&#xff08;驱动内核支持&#xff09; 分辨率&#xff1a; 像素点 显示屏&#xff1a;800 * 600&#xff08;横向有800个像素点&#xff0c;纵向有60…

9.10总结

今天学习了树形dp 根据题目意思可以建出一颗树&#xff0c;先dfs递到叶节点&#xff0c;在归的时候有递推方程 dp[n][0]max(dp[s][1],dp[s][0]); dp[n][1]dp[s][0]; s为n的子节点&#xff0c;那么递推方程就写出来了&#xff0c;今天还做了几道dp&#xff0c;都是线性dp 总…

【电子通识】半导体工艺——刻蚀工艺

在文章【电子通识】半导体工艺——光刻工艺中我们讲到人们经常将 Photo Lithography&#xff08;光刻&#xff09;缩写成 Photo。光刻工艺是在晶圆上利用光线来照射带有电路图形的光罩&#xff0c;从而绘制电路。光刻工艺类似于洗印黑白照片&#xff0c;将在胶片上形成的图像印…

Vue组件:混入

1、基本用法 混入是一种为组件提供可复用功能的非常灵活的方式。混入对象可以包含任意的组件选项。当组件使用混入对象时&#xff0c;混入对象中的所有选项将被混入该组件本身的选项中。 语法格式如下&#xff1a; <script> //第一步&#xff1a;引用 mixin 对象 impo…

为什么说AI产业落地,下一代超级应用是“智能体”?

“未来超级应用方向就是AI Agent&#xff0c;ChatGPT很了不起、很强大&#xff0c;但与Agent不一样。AI Agent时代的到来&#xff0c;不会是一个神奇而强大的模型突然代替了所有的工作流&#xff0c;涉及到技术、工程与市场的不断磨合&#xff0c;最终以超预期的服务呈现给人类…

LED会议一体机开启超微小间距COB高清显示在会议系统中的新乐章

在当今数字化、信息化高速发展的时代&#xff0c;会议系统作为企业沟通、决策的重要平台&#xff0c;其显示技术的革新正以前所未有的速度推动着会议体验的飞跃。LED会议一体机&#xff0c;作为这一领域的佼佼者&#xff0c;特别是当其融合了超微小间距COB&#xff08;Chip On …

Transformer:自然语言处理领域的革命性神经网络架构

创作不易&#xff0c;您的打赏、关注、点赞、收藏和转发是我坚持下去的动力&#xff01; Transformer 是一种革命性的神经网络架构&#xff0c;最初由 Vaswani 等人在 2017 年的论文《Attention is All You Need》中提出。它主要用于自然语言处理&#xff08;NLP&#xff09;任…

组合模式composite

学习笔记&#xff0c;原文链接 https://refactoringguru.cn/design-patterns/composite 将对象组合成树状结构&#xff0c; 并且能像使用独立对象一样使用它们。组合最主要的功能是在整个树状结构上递归调用方法并对结果进行汇总。 可以把各种形状组合到一个CompoundShape类中…

Kotlin入门实用开发技巧与注意事项

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 Kotlin&#xff0c;这门由 JetBrains 开发的现代编程语言&#xff0c;自 2017 年被 Google 宣布为 Android 官方开发语言以来&#xff0c;便迅速…

第二个VUE项目(服务端带mysql数据库)

一、序言 第一个vue只有前端的羡慕部署成功后&#xff0c;立马想试试带数据库的了&#xff0c;于是在gitee上搜索了一下&#xff0c;带着试试的心里做了一次尝试&#xff0c;半天就部署完了&#xff0c;当真还是很兴奋。虽然没有改什么代码&#xff0c;但是熟悉了这整个环境&am…