Vue(6)

news/2024/11/30 2:33:11/

文章目录

  • 1. 自定义指令
    • 1.1 函数式
    • 1.2 对象式
    • 1.3 自定义指令常见坑
    • 1.4 创建全局指令
  • 2. 生命周期
    • 2.1 引出生命周期
    • 2.2 分析生命周期
    • 2.3 总结
  • 3. 组件
    • 3.1 认识组件
    • 3.2 使用组件 (非单文件组件)
    • 3.3 全局组件
    • 3.4 组件的几个注意点
    • 3.5 组件的嵌套
    • 3.6 VueComponent 构造函数
    • 3.7 一个重要的内置关系

1. 自定义指令


上文说完了常见的指令 后 ,下面来学习 一下 自定义指令

1.1 函数式


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

1.2 对象式

在这里插入图片描述

1.3 自定义指令常见坑


1. 命名的坑 , 如果是多个单词 推荐使用 - 进行分割 ,然后配置的时候 ,需要使用 ""

在这里插入图片描述


2. 在自定义指令内 , this 是 window ( 这里不管是 函数式 还是 对象式 都是 window)

在这里插入图片描述

1.4 创建全局指令

在这里插入图片描述


总结 :

在这里插入图片描述


学习完自定义指令, 下面学习一下 vue 中非常 重要的知识 , 生命周期 .

2. 生命周期


这里通过 一个页面效果 来 引出生命周期 :

在这里插入图片描述

2.1 引出生命周期


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


这里 周期 其实 就是 vue 在不同时期调用不同的函数 .


这里 mounted 等 函数 (不止 moundted 这一个函数 ), 称为 生命周期函数 .


关于生命周期 可以 与 人的 生命周期 进行对比 学习 .


比如 : 人的一生 (人的生命周期)

呱呱坠地了 ===> 检查身体各项指标 ,

学会说话了 , ===> 引导 孩子 多学习新的词汇

学会走路了 , ===> 买一双合脚的鞋


vm的一生 (vm的生命周期) :

1.??? 了 ===> 调用 ??? 函数

2.挂载完毕了 ===> 调用 mounted 函数

3.??? 了 ===> 调用 ???? 函数


小结 :


生命周期 :

  1. 又名 : 生命周期回调函数 , 生命周期函数 , 生命周期钩子.
  2. 是什么 : Vue在关键时刻帮我们调用的一些特殊名称的函数
  3. 生命周期函数的名字不可更改, 但函数的具体内容 是程序猿根据需求编写的
  4. 生命周期函数中的this 指向是 vm 或 组件实例对象

2.2 分析生命周期


这里可以通过 官网的 图进行分析 :

在这里插入图片描述

引用 :

在这里插入图片描述


挂载流程 :


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


图四 :

在这里插入图片描述


到此 挂载流程就看完了, 下面来看看更新流程


更新流程:

在这里插入图片描述


销毁流程

在这里插入图片描述


最后 beforeDestroy 和 destroyed 函数 修改数据 并不会触发更新 (也就是不会再去调用 update 这个函数了).

2.3 总结


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

3. 组件

3.1 认识组件


在学习组件前 ,这里先来解决两个问题 :


1.啥是组件


2.组件化编程 和传统方式编程 相比有啥优势 (即 使用组件的好处 )


关于这两个问题 , vue 官网 是说过了的 .


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


看完上面这两张图 : 那么 提出的两个问题就可以回答了 。


1.啥是组件 ?


答 : 组件是 实现应用中 局部功能代码和资源的集合


2. 使用组件的优势

答 : 1. 依赖关系不混乱,文件好维护 , 2. 代码复用率高


知道了啥是组件 ,下面再来看一些概念 :


模块

  1. 理解 (啥是模块) : 向外提供特定功能的 js 程序 ,一般就是一个js 文件
  2. 为什么 ( 使用 模块 ) : js 文件很多很复杂
  3. 作用 (模块) :复用 js ,简化 js 的编写 , 提高 js 运行效率


模块化


当应用中的 js 都是 以 模块来编写的 ,那么这个应用就是一个模块化的应用 .


其实 就是 : 将 js 拆分成 多个 , 比如 一个 js 很大 , 这里 就 将它拆成了 a.js , b.js , c.js 等 .


组件化 :


当应用中的功能都是多组件的方式编写的,那么这个应用就是一个组件化的应用

3.2 使用组件 (非单文件组件)


在 vue 有两种组件 , 1. 非单文件组件 2. 单文件组件 .


非单文件组件 : 一个文件中包含 n 个组件 .

在这里插入图片描述


单文件组件 : 一个文件中只包含 一个 组件

在这里插入图片描述


下面来学习 一下 如何 创建组件 , 注册组件 ,使用组件

图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


附上代码 :

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>基本使用</title><script src="../../js/vue.js"></script>
</head><body><div id="root"><school></school><hr><student></student></div><script>// 1. 创建 school 组件// extend : 扩展let school = Vue.extend({data() {return {schoolName: '翻斗幼儿园',address: 'm78',}},template:`<div><h2>名称: {{schoolName}}</h2><h2>地址: {{address}}</h2>    </div>`})// 创建 student 组件 let student = Vue.extend({data() {return {studentName: "大古",age: 18}},template:`<div><h2>姓名: {{studentName}}</h2><h2>年龄: {{age}}</h2></div>`})new Vue({el: "#root",// 注册组件 使用 components 配置项 components: {school,student}})</script></body></html>

3.3 全局组件


使用全局注册组件 (此时所有 实例都能使用)

在这里插入图片描述


总结 :


vue 中使用组件的三大步骤 : 1. 定义 组件 (创建组件) 2. 组测组件 3. 使用组件 (写组件标签)

  1. 如何定义一个组件 ?

    a. 使用 Vue.extend (options) 创建 , 其中 options 和 new Vue(options) 时传入的那个 options 几乎一样 , 当也有点 区别 :

    • 区别如下 :
      • el 不用谢 , 为什么 ? —> 最终所有的组件都要经过一个 vm 的管理 , 由 vm 中的 el 决定服务那个容器
      • data 必须写成函数 , 为什么 ? —> 避免组件被复用时 , 数据存在引用关系
    • 备注 : 使用 template 可以配置组件结构
  2. 如何注册组件 ?

    • 局部注册 : 靠 new Vue 的时候 传入 components 选项
    • 全局注册 : 靠 Vue.component(‘组件名’ , 组件)
  3. 编写组件标签 : 如 :<school></school>

3.4 组件的几个注意点

图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述

3.5 组件的嵌套


图示 :

在这里插入图片描述


到此 , 已经知道了组件 (非单文件组件)的基本使用 , 这里 其实 已经可以 学习 单文件组件了, 但是 为了后面内容的学习简单一点 ,

这里先来学习一下 VueComponent 构造函数 。

3.6 VueComponent 构造函数


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


vm 和 vc 的区别 :

在这里插入图片描述


最后再说一个 重要的内置关系 ,就开始 单文件的学习 .

3.7 一个重要的内置关系

图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

到此 我们的 非单文件组件就看完了, 下面就可以来学习一下 单文件组件.


http://www.ppmy.cn/news/28316.html

相关文章

LeetCode第334场周赛

2023.2.26LeetCode第334场周赛 A. 左右元素和的差值 思路 前缀和后缀和 代码 class Solution { public:vector<int> leftRigthDifference(vector<int>& nums) {int n nums.size();vector<int> l(n), r(n), ans(n);for (int i 1; i < n; i )l[…

【云原生】k8s中Pod进阶资源限制与探针

一、Pod 进阶 1、资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时&#xff0c;调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还…

k8s-资源限制-探针检查

文章目录一、资源限制1、资源限制的使用2、reuqest资源&#xff08;请求&#xff09;和limit资源&#xff08;约束&#xff09;3、Pod和容器的资源请求和限制4、官方文档示例5、资源限制实操5.1 编写yaml资源配置清单5.2 释放内存&#xff08;node节点&#xff0c;以node01为例…

Lighthouse组合Puppeteer检测页面

如上一篇文章lighthouse的介绍和基本使用方法结尾提到的一样&#xff0c;我们在实际使用Lighthouse检测页面性能时&#xff0c;通常需要一定的业务前置条件&#xff0c;比如最常见的登录操作、如果没有登录态就没有办法访问其他页面。再比如有一些页面是需要进行一系列的操作&a…

【N32WB03x SDK使用指南】

【N32WB03x SDK使用指南】1. 简介1.1 产品简介1.2 主要资源1.3 典型应用2. SDK/开发固件文件目录结构2.1 doc2.2 firmware2.3 middleware2.4 utilities2.5 projects Projects3. 项目配置与烧录3.1 编译环境安装3.2 固件支持包安装3.3 编译环境配置3.4 编译与下载3.5 BLE工程目录…

1249 亲戚(并查集)

1249. 亲戚 题目 提交记录 讨论 题解 视频讲解或许你并不知道&#xff0c;你的某个朋友是你的亲戚。 他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。 如果能得到完整的家谱&#xff0c;判断两个人是否是亲戚应该是可行的&#xff0c;但如果两个人的最近公共祖…

springmvc之rest风格(RESTFUL)

目录 一、介绍 1.什么是REST&#xff1f; 2.REST的实质 3.REST风格的优点 4.REST风格的缺点 3.什么是RESTful&#xff1f; 二、代码理解 一、介绍 1.什么是REST&#xff1f; 答&#xff1a;REST&#xff08;Representational State Transfer&#xff09; ,表现形式转…

Random(二)什么是伪共享?@sun.misc.Contended注解

目录1.背景简介2.伪共享问题3.问题解决4.JDK使用示例1.背景简介 我们知道&#xff0c;CPU 是不能直接访问内存的&#xff0c;数据都是从高速缓存中加载到寄存器的&#xff0c;高速缓存又有 L1&#xff0c;L2&#xff0c;L3 等层级。在这里&#xff0c;我们先简化这些复杂的层级…