Vue(6)

news2024/11/15 8:36:15

文章目录

  • 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.coloradmin.cn/o/372657.html

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

相关文章

openresty学习笔记

openresty 简介 openresty 是一个基于 nginx 与 lua 的高性能 web 平台&#xff0c;其内部 集成了大量精良的 lua 库、第三方模块以及大数的依赖项。用于 方便搭建能够处理超高并发、扩展性极高的动态 web 应用、 web 服务和动态网关。 openresty 通过汇聚各种设计精良的 ngi…

LearnOpenGL-入门-纹理

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject LearnOpenGL中文官网&#xff1a;https://learnopengl-cn.github.io/ 文章目录纹理纹理环绕方式纹理过滤多…

3.抽象工厂模式(Abstract Factory)

与工厂模式对比 工厂模式 工厂模式是类创建模式。在工厂模式中&#xff0c;只需要生产同一种产品&#xff0c;只不过是生产厂家不同。 所以产品类的设计&#xff1a; 抽象的产品类Product具体的产品类Product_A&#xff0c;Product_B, Product_C, Product_D…… 工厂的设计…

BFC的含义以及应用

什么是BFC? BFC全称是Block Formatting context&#xff0c;翻译过来就是块级格式化上下文。简单来说&#xff0c;BFC是一个完全独立的空间。让空间里的子元素不会影响到外面的布局。&#x1f603;&#x1f603;&#x1f603; 如何触发BFC呢&#xff1f; mdn给了如下方式&a…

HMM-理论补充

目录 一.隐马尔科夫模型 二.HMM定义 三.隐马尔科夫模型的贝叶斯网络 四.HMM的确定 五.HMM的参数 六.HMM的参数总结 七.HMM的两个基本性质 1.齐次假设&#xff1a; 2.观测独立性假设&#xff1a; 八.HMM举例 九.HMM的3个基本问题 十.概率计算问题 1.直接算法 2.前向…

C语言学习笔记——程序环境和预处理

目录 前言 一、程序环境 1. 翻译环境 1.1 主要过程 1.2 编译过程 2. 运行环境 二、预处理 1. 预定义符号 2. #define 2.1 #define定义标识符 2.2 #define定义宏 2.3 命名约定和移除定义 3. 条件编译 4. 文件包含 结束语 前言 每次我们写完代码运行的时候都…

刷题28-有效的变位词

32-有效的变位词 解题思路&#xff1a; 注意变位词的条件&#xff0c;当两个字符串完全相等或者长度不等时&#xff0c;就不是变位词。 把字符串中的字符映射成整型数组&#xff0c;统计每个字符出现的次数 注意数组怎么初始化&#xff1a; int [] s1new int[26]代码如下&a…

C语言数据结构(一)—— 数据结构理论、线性表【动态数组、链表(企业版单向链表)】

数据结构理论1.1 数据数据&#xff1a;是描述客观事物的符号&#xff0c;是计算机中可以操作的对象&#xff0c;是能被计算机识别&#xff0c;并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型&#xff0c;还包括字符及声音、图像、视频等非数值类型。1.2数据…

决策树、随机森林、极端随机树(ERT)

声明&#xff1a;本文仅为个人学习记录所用&#xff0c;参考较多&#xff0c;如有侵权&#xff0c;联系删除 决策树 通俗来说&#xff0c;决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友&#xff0c;于是有了下面的对话&#xff1a; 女儿&#x…

C++17 nodiscard标记符

文章目录前言弃值表达式nodiscard标记符函数非弃值声明类/枚举类/结构 非弃值声明返回类引用与类指针前言 在C 17中引入了一个标记符nodiscard&#xff0c;用于声明一个 “非弃值(no-discard)表达式”。那么在开始之前&#xff0c;我们需要了解一下什么是弃值表达式。 弃值表…

LearnOpenGL-入门-着色器

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject LearnOpenGL中文官网&#xff1a;https://learnopengl-cn.github.io/ 文章目录着色器GLSL数据类型输入与输…

SpringMVC - 12 - 注解配置SpringMVC(完全注解开发)

文章目录注解配置SpringMVC1、创建初始化类WebInit&#xff0c;代替web.xml2、创建SpringConfig配置类&#xff0c;代替spring的配置文件3、创建WebConfig配置类&#xff0c;代替SpringMVC的配置文件4、TestController进行测试注解配置SpringMVC 使用配置类和注解代替web.xml和…

友云生态全球高峰论坛暨长沙首届私董会隆重召开

由友云生态主办的“赢在巅峰决策未来”在友云生态全球新消费、新金融、新资本高峰论坛暨长沙首届私董会于2023年2月22日隆重召开&#xff01;本场私董会以“赢在巅峰 决策未来”为主题&#xff0c;从思维、定位、格局、布局四个角度探讨未来发展的全新动能。作为行业标杆性盛会…

网络应用之HTTP响应报文

HTTP响应报文学习目标能够知道HTTP响应报文的结构1. HTTP响应报文分析HTTP 响应报文效果图:响应报文说明:--- 响应行/状态行 --- HTTP/1.1 200 OK # HTTP协议版本 状态码 状态描述 --- 响应头 --- Server: Tengine # 服务器名称 Content-Type: text/html; charsetUTF-8 # 内容类…

【RabbitMQ笔记06】消息队列RabbitMQ七种模式之Topics主题模式

这篇文章&#xff0c;主要介绍消息队列RabbitMQ七种模式之Topics主题模式。 目录 一、消息队列 1.1、主题模式&#xff08;Topics&#xff09; 1.2、案例代码 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;编写生产者 &#xff08;3&#xff09;编写消费…

MapReduce 性能优化

MapReduce用于大规模数据集的并行运算&#xff0c;所以性能优化也是需要重点关注的内容&#xff0c;下面是我在学习过程中&#xff0c;对于MapReduce 性能优化的点&#xff0c;分享大家学习&#xff0c;enjoy~~ MapReduce的运行流程 以上是MapReduce的运行流程&#xff0c;所以…

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

此前&#xff0c;Zebec社区在上线了投票治理系统Zebec Node后&#xff0c;曾上线了首个提案ZIP-1&#xff0c;对 Nautilus Chain 的推出进行了投票&#xff0c;作为 Zebec Chain 上线前的“先行链”&#xff0c;该链得到了社区用户的欢迎&#xff0c;投通过票的比例高达98.3%。…

负载均衡:LVS 笔记(二)

文章目录LVS 二层负载均衡机制LVS 三层负载均衡机制LVS 四层负载均衡机制LVS 调度算法轮叫调度&#xff08;RR&#xff09;加权轮叫调度&#xff08;WRR&#xff09;最小连接调度&#xff08;LC&#xff09;加权最小连接调度&#xff08;WLC&#xff09;基于局部性的最少链接调…

Apache Hadoop、HDFS介绍

目录Hadoop介绍Hadoop集群HDFS分布式文件系统基础文件系统与分布式文件系统HDFS简介HDFS shell命令行HDFS工作流程与机制HDFS集群角色与职责HDFS写数据流程&#xff08;上传文件&#xff09;HDFS读数据流程&#xff08;下载文件&#xff09;Hadoop介绍 用Java语言实现开源 允许…

SpringBoot:SpringBoot简介与快速入门(1)

SpringBoot快速入门1. SpringBoot简介2. SpringBoot快速入门2.1 创建SpringBoot项目&#xff08;必须联网&#xff0c;要不然创建失败&#xff0c;在模块3会讲到原因&#xff09;2.2 编写对应的Controller类2.3 启动测试3. Spring官网构建工程4. SpringBoot工程快速启动4.1 为什…