Day25_Vue—Vue的使用

本文是一篇Vue.js的基础教程,涵盖了从项目搭建到核心概念的全面讲解,包括双向绑定、事件处理、钩子函数、插值、v-model、v-on、v-for、v-if/v-show、v-bind、计算属性和watch的使用。同时,介绍了组件的全局和局部注册,以及父子组件间的通信。最后提到了使用Axios进行异步请求的数据获取。
摘要由CSDN通过智能技术生成

一、准备工作

1.介绍

vue是一个前端框架,也是其实是一个js文件;vue.js的下载方式:

  • 可以引用在线的vue.js;
  • 可以离线下载vue.js;
  • npm包资源管理器,可以下载vue.js

2.下载配置node

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.搭建工程

学习视频:项目搭建 以及 使用npm的方式安装vue模块
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、知识学习

1.双向绑定与事件处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.双向绑定与事件处理的原理

在这里插入图片描述
在这里插入图片描述

3.钩子函数

钩子函数具体有:beforeCreate,created,beforeMount,mounted,updated,beforeUpdate,destroyed,beforeDestroy

created钩子函数常用场景:用于初始化数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

this 就是当前的Vue实例,在Vue对象内部,必须使用 this 才能访问到Vue中定义的data内属性、方法等。

在这里插入图片描述

4.插值{{msg}}、v-text和v-html

在这里插入图片描述

5.v-model的使用

使用v-model指令实现复选框的双向绑定

  • 刚才的v-text和v-html可以看做是单向绑定,数据影响了视图渲染,但是反过来就不行(可以将vue实例中的data属性的msg值输出到页面,但是没办法改变msg的值)。
  • 接下来学习的v-model是双向绑定,视图(View)和模型(Model)之间会互相影响。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.v-on的使用

在没有使用vue之前;页面标签可以通过设置onXXX(如onClick)响应事件;在vue中可以通过v-on指令响应事件。

语法:
v-on:事件名="js片段或函数名"

简写语法:
@事件名="js片段或函数名"

v-on:click='add' 可以简写为 @click='add'

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.v-for的使用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

8.v-if的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.v-if和v-show

在这里插入图片描述
在这里插入图片描述

10. v-bind的使用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.计算属性

在这里插入图片描述

12.watch的使用

在vue实例中数据属性;因为在页面中修改而产生了变化;可以通过watch监控获取其改变前后的值。
在这里插入图片描述

如果是修改的对象数据属性,可以开启深度监控获取修改后最新的对象数据。如:person.name
在这里插入图片描述
在这里插入图片描述

三、组件的使用

1.全局组件和局部组件

组件使用场景:在项目需要重用某个模块(头部、尾部、新闻。。。)的时候,可以将模块抽取成组件,其它页面中注册组件并引用。

  • 全局注册:在任何vue实例中都可以引用,如:一般网站的头部导航菜单
  • 局部注册:可以在有需要的页面引入组件,如:商城网站首页页面中各种活动模块
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.父组件向子组件通信

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.子组件向父组件通信

子组件如何修改父组件的值
在这里插入图片描述
在这里插入图片描述

四、Axios

  • axios的作用:发送异步请求获取数据
  • 常见的方法:get、post
  • 在发送的时候可以指定参数(地址、请求方式和请求头部信息);
  • 返回数据结构(data/status/statusText/headers/config)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

感谢浏览和收藏

Vue可以通过使用第三方组件库或自己编写组件来实现日历签到功能。 1. 使用第三方组件库 例如,使用Element UI中的DatePicker组件,可以实现选择日期的功能。在选中日期后,可以将签到状态保存到后端数据库中,再在日历上展示已签到的日期。 2. 自己编写组件 可以使用Vue自带的组件和插件来编写日历签到组件。具体实现方法如下: - 在Vue项目中创建一个Calendar组件; - 使用Vue自带的v-for指令展示日历; - 在每个日期上绑定点击事件,用来切换签到状态; - 将签到状态保存到Vuex或后端数据库中; - 在日历上展示已签到的日期。 下面是一个简单的日历签到组件代码示例: ```html <template> <div class="calendar"> <div class="header">{{ year }}年{{ month }}月</div> <table> <thead> <tr> <th v-for="day in days">{{ day }}</th> </tr> </thead> <tbody> <tr v-for="week in weeks"> <td v-for="date in week" :class="{ active: isSigned(date) }" @click="toggleSign(date)">{{ date }}</td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { year: new Date().getFullYear(), month: new Date().getMonth() + 1, days: ["日", "一", "二", "三", "四", "五", "六"], weeks: [], signedDates: [] }; }, computed: { daysInMonth() { const date = new Date(this.year, this.month, 0); return date.getDate(); } }, mounted() { this.generateCalendar(); }, methods: { generateCalendar() { const firstDay = new Date(this.year, this.month - 1, 1).getDay(); const lastDate = this.daysInMonth; const weeks = []; let week = []; for (let i = 0; i < firstDay; i++) { week.push(""); } for (let i = 1; i <= lastDate; i++) { week.push(i); if (week.length === 7) { weeks.push(week); week = []; } } if (week.length > 0) { for (let i = week.length; i < 7; i++) { week.push(""); } weeks.push(week); } this.weeks = weeks; }, toggleSign(date) { if (this.isSigned(date)) { // 取消签到 const index = this.signedDates.indexOf(date); this.signedDates.splice(index, 1); } else { // 签到 this.signedDates.push(date); } // 将签到状态保存到Vuex或后端数据库中 }, isSigned(date) { return this.signedDates.includes(date); } } }; </script> <style> .calendar { width: 300px; margin: 0 auto; text-align: center; } .header { font-size: 16px; font-weight: bold; margin-bottom: 10px; } table { width: 100%; border-collapse: collapse; } th { height: 30px; line-height: 30px; } td { height: 50px; line-height: 50px; cursor: pointer; } td.active { background-color: #66ccff; color: #fff; } </style> ``` 这个示例中的Calendar组件展示了一个月的日历,并提供了签到功能。你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackTurn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值