当前位置: 首页 > news >正文

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.dtcms.com/a/317187.html

相关文章:

  • 面试问题11
  • 20-C语言:第21~22天笔记
  • V2X通信标准与消息数据结构详解
  • 异构系统数据集成之数据源管理:打通企业数据孤岛的关键一步
  • docker环境搭建
  • Qt Frameless Widget跨平台无边框窗口
  • 基于最大似然估计的卡尔曼滤波与自适应模糊PID控制的单片机实现
  • 鼠标下滑时回跳问题
  • 从“更优”到“更智”:V5.7.3 的交互革新、模式扩展与体验跃迁
  • NodeJs学习日志(1):windows安装使用node.js 安装express,suquelize,sqlite,nodemon
  • ESP32:2.搭建UDP服务器
  • 参考线程池构建一个高性能、配置驱动的Docker容器池
  • Linux---第二天---基础指令
  • copy_file_range系统调用及示例
  • 使用Nginx部署前后端分离项目
  • Docker的安装,服务器与客户端之间的通信
  • Linux基础命令的生产常用命令及其示例简单解释
  • 电子电气架构 ---如何焕新升级为 48V 电气架构
  • 【32】C++实战篇—— m行n列的坐标点,求每行相邻点X差值dX,每列相邻点y差值dY,并以矩阵形式左端对齐
  • 玩转 InfluxDB 3:用 HTTP API 快速创建高效数据表
  • Python科学计算:从基础到工程仿真的完整指南
  • 【java】DDD架构同普通微服务项目的区别
  • 23.统计分析:从数据中挖掘洞察
  • 深入浅出 RabbitMQ - 主题模式(Topic)
  • JavaWeb(04)
  • 丝滑qt页面跳转
  • android10~16变更一览和开发者兼容应对
  • 学习 Android(十五)NDK进阶及性能优化
  • antd组件select下拉数据分页加载
  • 学习 Android (十六) 学习 OpenCV (一)