Vue(7)——工程化开发

devtools/2024/12/22 10:26:25/

目录

工程化开发

组件化开发

普通组件的注册使用

局部注册

全局注册

组件三大组成部分说明 

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.ppmy.cn/devtools/111807.html

相关文章

python转换并提取pdf文件中的图片

#安装fitz包 pip install pymupdf 脚本如下所示&#xff1a; import fitz import re import os import time import sysarguments sys.argvfor arg in arguments:print(arg)def file_name_list(base_dir):for i, j, k in os.walk(base_dir):name [i.replace(.pdf, ) for i …

Python 将字典转换为 JSON

在 Python 中&#xff0c;可以使用 json 模块将字典转换为 JSON 格式的字符串。该模块提供了 json.dumps() 方法&#xff0c;用于将 Python 对象&#xff08;如字典、列表&#xff09;序列化为 JSON 字符串。 1、问题背景 用户想要将一个 Python 字典转换为 JSON 格式&#xf…

顶刊算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测

顶刊算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测 目录 顶刊算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现顶刊算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测&#xff08;程序可以作为JCR…

Python画笔案例-047 绘制雪花

1、绘制雪花 通过 python 的turtle 库绘制 雪花&#xff0c;如下图&#xff1a; 2、实现代码 绘制 雪花&#xff0c;以下为实现代码&#xff1a; """雪花.py """ import turtledef draw_branch(d):for _ in range(2):turtle.fd(d)turtle.lt(45)…

【专题】2024年8月医药行业报告合集汇总PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37621 在科技飞速发展的当今时代&#xff0c;医药行业作为关乎人类生命健康的重要领域&#xff0c;正处于前所未有的变革浪潮之中。数智医疗服务的崛起&#xff0c;为医疗模式带来了全新的转变&#xff0c;开启了医疗服务的新时代。…

layui监听table表单的多选框

// 监听表格复选框选择 table.on(checkbox(dataTable), function(obj){var checkStatus table.checkStatus(dataTable); // 获取表格的选中状态console.log(checkStatus.data); // 打印选中的数据console.log(obj.checked); // 当前是否选中console.log(obj.data); // 当前行的…

GO Signal

文章目录 1. **常见信号类型**2. **捕获信号的步骤**3. **简单的Signal处理示例**4. **解释代码**5. **忽略信号**6. **实际应用&#xff1a;优雅关闭HTTP服务器**7. **总结** 在Go中&#xff0c; os/signal 包提供了对操作系统信号的访问和处理。信号是进程之间通信的一种方式…

其它查询优化策略

12、其它查询优化策略 12.1.EXISTS 和 IN 的区分 问题&#xff1a;不太理解哪种情况下应该使用 EXISTS&#xff0c;哪种情况应该用 IN。选择的标准是看能否使用表的索引吗&#xff1f; 回答&#xff1a;索引是个前提&#xff0c;其实选择与否还是要看表的大小。你可以将选择的…