vue快速入门(四十四)自定义组件

news/2024/5/19 4:42:33

注释很详细,直接上代码

上一篇

新增内容

  1. 全局注册自定义组件并应用
  2. 局部注册自定义组件并应用

此篇使用了axios模块没有安装导入的先看这一篇

axios模块下载与导入

源码

main.js

import Vue from 'vue'
import App from './App.vue'//全局引入axios
// 引入axios
import axios from 'axios';
// 挂载到vue原型链上
Vue.prototype.axios = axios;Vue.config.productionTip = false//全局注册指令(自动获取焦点)
Vue.directive('focus', {// ele:绑定的元素(操作节点)// obj:指令的绑定对象(获取属性)bind(ele,obj){//只执行一次;DOM渲染之前执行,可以进行样式操作},inserted(ele,obj){//只执行一次,DOM渲染之后执行,可以进行行为操作ele.focus()// 聚焦元素console.log(obj)},update(ele,obj){//数据更新后执行},componentUpdated(ele,obj){//父子组件都更新后执行},unbind(ele,obj){//只执行一次,指令与元素解绑时执行}
})new Vue({render: h => h(App),
}).$mount('#app')

App.vue

<template><div id="app"><!-- 当然我们也可以写成v-focus="xxx"进行传值,值可以在对象属性中获取 --><input type="text" v-focus><TestComponent/></div>
</template>
<script>
import TestComponent from "./components/TestComponent.vue";
export default {name: "App",components: {TestComponent},data() {return {};},methods: {}
};
</script>
<style></style>

TestComponent.vue

<template><div class="main"><div class="box"><ul v-loading="list.length"><li v-for="item in list" :key="item.id" class="news"><div class="left"><div class="title">{{ item.title }}</div><div class="info"><span>{{ item.source }}</span><span>{{ item.time }}</span></div></div><div class="right"><img :src="item.img" alt="" /></div></li></ul></div></div>
</template><script>//局部引入axios
//  import axios from 'axios'export default {data() {return {list: [],};},async created() {// 1. 发送请求获取数据const res = await this.axios.get("http://hmajax.itheima.net/api/news");setTimeout(() => {// 2. 更新到 list 中,用于页面渲染 v-forthis.list = res.data.data;}, 1000);},// 自定义指令directives: {loading: {inserted(ele, obj) {//刷新后立即判断//如果数据长度不为零则表示加载完毕,可以去除loading的类名obj.value <= 0? ele.classList.add("loading"): ele.classList.remove("loading");},update(ele, obj) {//数据改变后判断obj.value <= 0? ele.classList.add("loading"): ele.classList.remove("loading");},},},
};
</script><style>
/* 使用伪类覆盖的方法 */
.loading:before {content: "";position: absolute;left: 0;top: 0;width: 100%;height: 100%;background-size: cover;background: #fff url("../../imgs/loading.gif") no-repeat center;
}/* 下面不是重点 */
.box {width: 800px;min-height: 500px;border: 3px solid orange;border-radius: 5px;position: relative;
}
.news {display: flex;height: 120px;width: 600px;margin: 0 auto;padding: 20px 0;cursor: pointer;
}
.news .left {flex: 1;display: flex;flex-direction: column;justify-content: space-between;padding-right: 10px;
}
.news .left .title {font-size: 20px;
}
.news .left .info {color: #999999;
}
.news .left .info span {margin-right: 20px;
}
.news .right {width: 160px;height: 120px;
}
.news .right img {width: 100%;height: 100%;object-fit: cover;
}
</style>

效果演示:

在这里插入图片描述


http://www.mrgr.cn/p/57280246

相关文章

FLINKCDC 3.0整库同步MYSQL至DORIS(FLINK1.18): 历程

大数据技术涉及组件较多,各个环境较DEMO又不尽相同,所以参照DEMO进行,任然很多报错信息出现。 如下报错处理,尽供参考: 1.创建同步配置文件 ################################################################################ Description: Sync MySQL all tables to Do…

Jira搭建过程

看到很多小伙伴对jira有兴趣,我们今天就来分享一下jira的搭建吧 首先要明白jira是什么? 看来搭建jira也是我们测试人员需要具备的技能之一了.下面是详细的大家步骤: 1.系统环境准备 Centos 7.5 Mysql 5.6 Java1.8 2.软件安装包 atlassian-jira-software-7.13.0-x64.bin …

万字长文总结与剖析C语言关键字 -- C语言深度解剖

总结与剖析C语言关键字的功能与原理、ANSI C,GNU C、跨平台、多学科角度C总结与剖析:关键字篇 -- <<C语言深度解剖>> 目录C总结与剖析:关键字篇 -- <<C语言深度解剖>>程序的本质:二进制文件变量1.变量:内存上的某个位置开辟的空间2.变量的初始化3.为什…

TCP/IP协议—MQTT

TCP/IP协议—MQTT MQTT协议MQTT协议特点MQTT通信流程MQTT协议概念 MQTT报文固定报头可变报头有效载荷 MQTT协议 消息队列遥测传输&#xff08;Message Queuing Telemetry Transport&#xff0c;MQTT&#xff09;是一个基于客户端-服务器的消息发布/订阅传输协议。它的设计思想…

容器使用之`Array`

容器使用之Array 使用c++当中容器都被定义在以容器为名的头文件当中使用时需要引入头文件关键点:因为容器都有一个适配器去分配内存.所以声明array的时候要告诉编译器array放置的数据类型array的大小示例代码: #pragma#ifndef __ARRAY__#define __ARRAY__​#include <array&…

玩转枚举Enum

背景介绍 为什么要使用枚举呢&#xff0c;我将通过枚举模拟一些使用场景来说明&#xff1a; 枚举类也是一个普通类&#xff0c;可以定义一些变量、常量&#xff0c;同样可以定义构造方法可以实现接口&#xff0c;可以以main函数作为测试类等等&#xff0c;但是它不能继承一个类…

JavaScript-4.正则表达式、BOM

正则表达式 正则表达式包含在"/"&#xff0c;"/"中 开始与结束 ^ 字符串的开始 $ 字符串的结束 例&#xff1a; "^The"&#xff1a;表示所有以"The"开始的字符串&#xff08;"There"、"The cat"等&#x…

最新青龙部署美团自动领红包、抢券

一、服务器部署: 1、安装docker这里选择Ubuntu 系统进行操作:apt-get install docker docker.io -yps:centos自行查找安装docker​ 安装完测试docker命令: docker ps // 打印正在运行的容器 docker -v // 打印docker版本信息2、docker安装青龙青龙的仓库地址:https://gith…

YOLOv5 GUI界面部署教程

(1)将yolov5-6.0-APP文件夹解压,解压后其中文件夹如下。(2)在pycharm中打开yolov5-6.0-APP文件夹,如下图所示。(3)打开终端,运行命令pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple,安装第一批依赖(4)输入命令cd PyQt5-YOLOv5-yolo…

Linux下的UDEV机制/守护进程

一. Udev机制概念引入 ( 需要在 etc/udev/rules.d/ 下创建设备的相关规则&#xff0c;不然有可能udev机制生成的设备文件不具备可读可写的权限&#xff0c;adb无法成功通过该设备文件访问设备 ) a. 创建文件夹 sudo vim Xiaomi-audroid.rules b. 添加规则 …

【汇编语言】流程转移和子程序

【汇编语言】流程转移和子程序 文章目录 【汇编语言】流程转移和子程序前言一、“转移”综述二、操作符offset三、jmp指令jmp指令——无条件转移jmp指令&#xff1a;依据位移进行转移两种段内转移远转移&#xff1a;jmp far ptr 标号转移地址在寄存器中的jmp指令转移地址在内存…

球体与棱柱的切接问题

球体与棱柱的切接问题前言 球体与正三棱柱正三棱柱不一定有内切球和棱切球,但一定有外接球。正三棱柱的外接球的球心是上下底面中心连线的中点,关键关系:正三棱柱的高为 \(h\),正三棱柱的底面外接圆的半径 \(r\) 与球的半径 \(R\) 之间的关系为 \((\cfrac{h}{2})^2+r^2=R^2…

帆软笔记

一:表格值自定义显示 1、日期型格式化:=FORMAT($$$,"MM月dd日"),或者 2、普通值自定义显示:if($$$=SW_1,丝网一号机,if($$$=SW_2,丝网二号机,丝网三号机)),或者 二:从数据集中再次筛选,如Sum运算SUM(表格.select(QTY_SW, SHIFT_CODE_NAME = B3 && WO…

户外旅行摄影手册,旅游摄影完全攻略

一、资料前言 本套旅游摄影资料&#xff0c;大小295.47M&#xff0c;共有9个文件。 二、资料目录 《川藏线旅游摄影》杨桦.彩印版.pdf 《户外摄影指南》(Essential.Guide.to.Outdoor.photography.amateur)影印版.pdf 《旅行摄影大师班》(英)科尼什.扫描版.PDF 《旅行摄影…

linu管理文本文件

vi\vim编辑器的三种工作模式 命令模式(Command mode):按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。 输入模式(Insert mode):也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。 底线命令模式(Last line …

第十五届蓝桥杯省赛第二场C/C++B组F题【狡兔k窟】题解(AC)

题意分析 有一个 n n n 个点&#xff0c; n − 1 n-1 n−1 条边的无向图&#xff0c;边权均为 1 1 1。 每个点隶属于一个集合&#xff0c;同一个集合的点可以互相传送。 给定 m m m 个询问&#xff0c;求 x , y x, y x,y 的最短距离。 最短路解法 步骤&#xff1a; 建…

【PyTorch】torch.gather() 用法

gather常被用于image做mask的操作中&#xff0c;对哪些地方进行赋值0/1 API&#xff1a; torch.gather — PyTorch 2.2 documentation torch.gather(input, dim, index, outNone) → Tensor gather()的意义&#xff1a; 顾名思义&#xff0c;聚集、集合&#xff1a;gather…

1500PLC通过Modbus转Profinet网关与流量计Modbus通讯

Modbus转Profinet网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。通过使用Modbus转Profinet网关,可以实现流量计与1500PLC之间的高效通讯,使得设备之间的数据交换更加便捷和高效。1500PLC作为控制器,与Modbus转Profinet网关的结合,为工业控制系…

实验三

TASK 1点击查看代码 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define N 80void print_text(int line, int col, char text[]); // 函数声明 void print_spaces(int n); // 函数声明 void print_blank_lin…

Https协议原理剖析【计算机网络】【三种加密方法 | CA证书 】

目录 一&#xff0c;fidler工具 前提知识 二&#xff0c;Https原理解析 1. 中间人攻击 2. 常见的加密方式 1&#xff09;. 对称加密 2&#xff09;. 非对称加密 对称加密 4&#xff09;. CA证书 1. 数据摘要 3. 数字签名 CA证书 理解数据签名 存在的安全疑问&am…