Vue2博客项目笔记(完结)

this.$emit('load'): 子组件负责监听,然后告诉父组件,父组件来执行 load 方法

<div ref="scroll" >

ref="scroll":给元素取引用名,在 JS 中可以通过 this.$refs.scroll 拿到这个元素

<slot></slot> :用于把父组件传入的内容渲染到子组件的指定位置

父组件:

<scroll-page><p>我是父组件传进来的内容</p>
</scroll-page>

子组件:

<!-- ScrollPage.vue -->
<template><div><slot></slot>  <!-- 👈 这里就是“内容占位符” --></div>
</template>

相当于把 p标签的内容插入到 slot 的位置

![[Pasted image 20250806092521.png]]

const that = this作用: 保存当前上下文(即 this)的引用

let curHeight = document.documentElement.scrollTop || document.body.scrollTop

获取页面滚动的高度
document.documentElement.scrollTop 适用于标准模式下的浏览器
document.body.scrollTop 适用于兼容模式或部分老旧浏览器
用或运算符(||)是为了兼容不同浏览器,哪个有值就用哪个

that.articles = that.articles.concat([// 数据对象
]);

作用是将 that.articles 原有的数组与括号内的数组合并,生成一个新的数组,并将其赋值回 that.articles

that.$message({ … })

Element UI 的全局消息提示组件,用来显示弹窗提示

that.$message({type: 'error',             // 提示类型:'success' | 'warning' | 'info' | 'error'message: res.data.message, // 提示的文字内容showClose: true            // 是否显示右上角的关闭按钮
})
res.data.data

后端拿到的数据:

{"success": true,"data": [{ "id": 1, "title": "文章标题1" },{ "id": 2, "title": "文章标题2" }],"message": "成功"
}
  • res 是 axios 的响应对象

  • res.data 是后端返回的 JSON 对象

  • res.data.data 是需要的数据

//to="/" 表示跳转到根路径 /
<router-link to="/" class="me-title"><img src="../assets/img/logo.png" />
</router-link>

router-link 用于 Vue 跳转,不刷新页面

统一请求处理

统一指定请求url:

import axios from 'axios'  const service = axios.create({  baseURL: "http://localhost:8888",  timeout: 10000  
})  export default service

接口的url:

export function getArticles(page) {return request({method: 'post',url: '/articles/findArticlePage',data: page})
}
发起请求的函数
			getArchives(){//发起http请求 请求后端的数据getArchives().then((res)=>{////res.data = Result (success,msg,data)if(res.data.success){this.archives = res.data.data;}else{this.$message.error(res.data.msg);}}).catch((err)=>{this.$message.error("系统错误");}).finally(()=>{})},

第一处是组件内定义的方法
第二处是导入的 API 请求函数:

// api/article.js
export function getHotArticles() {return request({method: 'get',url: '/articles/hot'});
}
监听器(watcher)

监听 $route 的变化: 如果用户从一篇文章跳到另一篇(URL 变了),重新调用 getArticle() 获取新文章内容

watch: {'$route': 'getArticle'
}
this.$store.state.id 是什么?

Vuex 是 Vue 官方的状态管理库,类似全局变量存储中心, $store 是 Vuex 的实例,可以在任何组件里通过 this.$store 访问, state 是 Vuex 里存储数据的地方

Vuex

Vuex: 提供一个全局唯一的状态仓库, 任何组件都可以读取全局数据并修改

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WinForm之ListView 组件

在 WinForm 中&#xff0c;ListView是用于展示列表型数据的灵活控件&#xff0c;支持多种视图模式&#xff08;如详情列表、图标、列表等&#xff09;&#xff0c;可展示带有图标、多列属性的项目&#xff08;如文件列表、产品信息&#xff09;&#xff0c;兼具展示和交互功能&…

2025年渗透测试面试题总结-01(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 常见面试题 一、有趣的挖洞经历 二、高频漏洞及修复方案 三、渗透工具链及特点 四、WAF绕过技术 五、系…

C++(线程)

一、线程1、线程构造函数类模板原型&#xff1a;template <class Fn, class... Args>explicit thread (Fn&& fn, Args&&... args);1&#xff09;thread&#xff08;线程的构造函数&#xff09;格式&#xff1a;#include <thread>thread 线程名(回调…

cf.训练

1. Buying Lemonade Buying Lemonade 解题思路&#xff1a; 排序&#xff1a;将插槽的罐数 a 从小到大排序&#xff08;sort(a, an)&#xff09;。 特殊情况处理&#xff1a; 若最小罐数足够大&#xff08;a[0] > k/n 且 k%n0&#xff09;或 k1&#xff0c;直接输出 k&…

JAVA无人共享球杆柜系统球杆柜租赁系统源码支持微信小程序

JAVA无人共享球杆柜系统&#xff1a;物联网小程序打造高尔夫租赁新体验市场机遇与行业痛点1. 高尔夫球杆租赁市场蓝海市场规模快速增长&#xff1a;2023年中国高尔夫球杆行业市场规模达到14.77亿元&#xff0c;预计2024年将突破15.75亿元。全球高尔夫装备市场2024年达到132.6亿…

uniapp Android App集成支付宝的扫码组件mPaaS

第一步&#xff0c;设置包名&#xff0c;下载插件导项目中 在manifest.json中添加package, 设置完指定的包名后&#xff1a;Hbuilderx打包时包名也会变化 变成 下载插件导项目中&#xff0c; 第二步&#xff1a;进入阿里云mPaas后台完成代码配置&#xff0c;下载配置文件http…

Effective C++ 条款22: 将成员变量声明为private

Effective C 条款22&#xff1a;将成员变量声明为private核心思想&#xff1a;始终将成员变量声明为private&#xff0c;通过函数接口控制访问&#xff0c;提供封装弹性、精确访问控制和一致性维护点。 ⚠️ 1. 公开成员的致命缺陷 数据一致性破坏&#xff1a; class AccessPoi…

Java基础-斗地主游戏

目录 案例要求&#xff1a;​ 实现思路&#xff1a; 代码&#xff1a; Main启动类&#xff1a; Card实体类&#xff1a; Room操作类&#xff1a; 总结&#xff1a; 案例要求&#xff1a; 实现思路&#xff1a; 1构造卡牌,细节&#xff1a;实体类另设一个int类型变量表示…

基于Java的AI/机器学习库(Smile、Weka、DeepLearning4J)的实用

基于Java和AI技术处理动漫视频 以下是一些基于Java和AI技术处理动漫视频(如《亚久斗》)的实用案例和实现方法,涵盖视频分析、风格转换、角色识别等方向。每个案例均提供技术思路和关键代码片段。 视频关键帧提取 使用OpenCV提取动漫视频中的关键帧,保存为图片供后续分析…

Qt 自动无法加载数据库为空

解决方式:main() 中设置QDir::setCurrent(QCoreApplication::applicationDirPath());即可 1、开机自启 void setAutoStart(bool enable) {QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);QS…

vue3指定设置了dom元素的ref但是为null问题

目录 问题场景 ​编辑问题原因 解决方案 问题场景 可以看到我指定了元素的ref&#xff0c;正常来说在组件挂载完毕后可以通过ref.value正常获取到dom元素 但是实际打印出来为null 问题原因 根本原因就是v-if指令的问题&#xff0c;v-if指令能够控制元素是否渲染&#xff0…

控制建模matlab练习08:根轨迹

此练习主要是&#xff1a;在matlab中绘制根轨迹的方法。 一、在matlab中建立对应系统 1、例如&#xff0c;对于如图的反馈系统。 2、其中开环传递函数G(s)、闭环传递函数Gcl(s)。3、因此&#xff0c;其闭环传递函数的根轨迹&#xff0c;就可以直接在matlab中绘制出来。 4、直接…