Vue学习:13.生命周期综合
0基础如何进入IT行业?
简介:对于没有任何相关背景知识的人来说,如何才能成功进入IT行业?是否有一些特定的方法或技巧可以帮助他们实现这一目标?
方向一:学习路径
明确兴趣和目标:首先确定你对IT领域的兴趣和目标。IT行业非常广泛,包含了软件开发、网络管理、数据分析、人工智能等不同的领域。了解自己的兴趣和目标,可以帮助你选择适合的学习路径。
学习编程基础:无论你选择哪个领域,学习编程是一个重要的起点。掌握一门编程语言(如Python、JavaScript、Java等)和基本的编程概念(如变量、循环、函数等)是必要的。可以通过在线教程、编程学习平台、书籍等方式学习编程基础知识。
选择专业领域:根据自己的兴趣和目标选择IT领域中的一个专业方向,例如前端开发、后端开发、数据分析、网络安全等。针对选定的方向,深入学习相关的技术和知识,并进行实际项目练习。
方向二:技能培养
参加培训课程或学位课程:如果你想获得更系统化的学习经验,可以考虑参加IT培训班或报读相关的学位课程。这些课程通常会提供更深入的知识和实践机会,并且可以获得认可的证书或学位,有助于增加就业竞争力。
做项目和实践:在学习过程中,尽量多做一些项目和实践练习,以实际应用所学知识。可以参与开源项目、自己构建小型应用程序或者参加一些编程比赛,这样可以展示你的技能并积累宝贵的经验。
建立专业网络:参加一些IT行业的活动、交流会议或者加入相关的社群,与从业者建立联系,并从他们那里获取指导和支持。与其他人分享你的学习和项目经验,也可以帮助你扩展专业网络。
持续学习和跟进技术发展:IT行业发展迅速,新技术和工具层出不穷。要保持竞争力,需要持续学习和跟进最新的技术趋势。关注行业动态、阅读技术文章、参加在线课程或研讨会,都是不断学习的好方法。
最后祝愿大家能够学有所成,学有所用!
那么好,咱们回归正传。这一节将实践一个综合案例,结合了前面所学的知识。
实例:记账本
实现功能:
1. 基本渲染:基于后端数据动态渲染;
2. 添加功能:通过表单元素向后端添加数据;
3. 删除功能:通过删除按钮动态删除后端数据;
4. 饼图渲染:基于渲染数据使用饼图可视化。
5. 生命周期钩子函数灵活运用
思路:
这一个案例的前提要求便是获取并修改后端数据,这一点是最为重要的!
axios 简介
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:
支持原生 TypeScript
请求响应拦截
支持 node.js
从浏览器中创建 XMLHttpRequest
支持 Promise API....
导入:
//使用npm
npm install axios
//使用yarn
yarn add axios
//或者使用cdn:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
发起GET请求:
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
发起POST请求:
axios.post('https://api.example.com/submit', { username: 'john', password: 'secret' })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
您还可以在请求中设置其他参数,如请求头、请求参数等。例如:
axios.get('https://api.example.com/data', {
headers: {
'Authorization': 'Bearer token'
},
params: {
page: 1,
limit: 10
}
})
饼图可视化:
了解了axios如何请求和修改后端数据,咱们来学习下如何进行饼图可视化。
在Vue.js中渲染饼图通常使用一些流行的数据可视化库,比如Chart.js或者ECharts。本案例中,我们使用了ECharts来渲染。
ECharts是一个使用 JavaScript 实现的开源可视化库,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。ECharts 提供了丰富的图表类型和交互能力,使用户能够通过简单的配置生成各种各样的图表,包括但不限于折线图、柱状图、散点图、饼图、雷达图、地图等,可高度个性化定制的数据可视化图表。
导入:
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
使用:
在绘图前我们需要为Echarts准备一个具备宽高的DOM容器,然后通过echarts.init方法初始化一个Echarts实例并通过setOption方法生成一个简单的图型,下面是完整代码:
<template>
<div ref="pieChart" style="width: 600px; height: 400px;"></div>
</template>
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
<script>
export default {
mounted() {
this.renderPieChart();
},
methods: {
renderPieChart() {
const chartDom = this.$refs.pieChart;
const myChart = echarts.init(chartDom);
const option = {
series: [{
type: 'pie',
data: [
{ value: 335, name: '直接访问' },
{ value: 310, name: '邮件营销' },
{ value: 234, name: '联盟广告' },
{ value: 135, name: '视频广告' },
{ value: 1548, name: '搜索引擎' }
]
}]
};
myChart.setOption(option);
}
}
};
</script>
代码:
html:
<div id="app">
<div class="top">
<input v-model="name" placeholder="消费名称">
<input v-model="price" placeholder="消费金额">
<button @click="add()">添加条目</button>
</div>
<div class="table">
<table>
<header>
<tr>
<th>编号</th>
<th>消费名称</th>
<th>消费金额</th>
<th>操作</th>
</tr>
</header>
<tbody>
<tr v-for="(item, index) in list" :key="item.id">
<td>{{ index+1 }}</td>
<td>{{ item.name }}</td>
<td :class="{red: item.price > 500}">{{ item.price.toFixed(2) }}</td>
<td><button @click="del(item.id)">删除</button></td>
</tr>
</tbody>
<footer>
<tr>
<td colspan="4" style="text-align: left;">消费总计:{{ total.toFixed(2) }}</td>
</tr>
</footer>
</table>
</div>
<!-- 准备好具备大小的DOM -->
<div id="chart"></div>
</div>
js:
<script>
const app = new Vue({
el: '#app',
data: {
list:[],
name:'',
price:''
},
computed: {
total(){
return this.list.reduce((sum,item) => sum + item.price,0)
}
},
created(){
// 使用添加/删除功能后,需要重新渲染,将下列封装为函数更为高效
// let res = await axios.get('https://xxx',{
// params:{
// creator: '李世民'
// }
// })
// // console.log(res)
// this.list = res.data.data
this.addList()
},
mounted(){
// 创建echart实例
this.myChart = echarts.init(document.querySelector('#chart'))
//配置数据
this.myChart.setOption({
title: {
text: '我的消费账单',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
},
series: [{
name: '明细',
type: 'pie',
radius: '50%', //半径
data: [], //匹配后台数据,默认为空
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}]
})
},
methods: {
async addList(){
// 发送请求,获取数据
let res = await axios.get('https://xxx',{
params:{
creator: '小白'
}
})
this.list = res.data.data
// 获取数据后,重新配置饼图的数据,更新图表
this.myChart.setOption({
// 仅需要配置数据项
series: [{
data: this.list.map(item => ({value: item.price, name: item.name})),
}]
})
},
async add(){
// 发送请求,修改数据
let res = await axios.post('https://xxx',{
creator: '小白',
name: this.name,
price: this.price
})
console.log(res)
// 重新渲染页面
this.addList()
this.name = ''
this.price = ''
},
async del(id){
// 发送请求,根据ID修改数据
let res = await axios.delete(`https://xxx/${id}`)
console.log(id)
// 重新渲染页面
this.addList()
}
}
})
</script>
css:
<style>
table{
width: 500px;
margin-top: 10px;
border-collapse: collapse;
}
th, td{
height: 30px;
text-align: center;
line-height: 20px;
border: 1px solid black;
}
#chart{
width: 500px;
height: 400px;
margin-top: 20px;
border: 1px solid black;
}
.red{
color: red;
}
</style>
效果:
注意:
案例中还有很多需要注意的点,比如: 应该是在created()里使用axios获取后端数据然后渲染,但是使用添加/删除功能后,还需要重新渲染,但是这已经不属于created()钩子范围内,所以将axios的get方法封装为函数使用更为高效。
Vue学习:13.生命周期综合的更多相关文章
- vue学习之生命周期和钩子函数
参考文章:Vue2.0 探索之路——生命周期和钩子函数的一些理解 抛出问题: 我们有时候会在几个钩子函数里做一些事情,那么什么时候做,该在哪个函数里做? 生命周期简介 结合代码看el 和 data以及 ...
- vue学习之五生命周期
一.vue生命周期图解 下图展示了实例的生命周期.你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高. 二.vue钩子函数使用 2.1beforeCreate 在实例初始 ...
- vue学习三:生命周期钩子
生命周期钩子介绍: 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运行一些叫做生 ...
- Vue学习之生命周期钩子小结(四)
一.生命周期钩子(函数): 1.每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运 ...
- vue学习笔记(二) ---- vue实例的生命周期
vue实例的生命周期 什么是生命周期:从Vue实例创建.运行.到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期! 生命周期钩子:就是生命周期事件的别名而已: 生命周期钩子 = 生命周期函 ...
- vue02 过滤器、计算和侦听属性、vue对象的生命周期、阻止事件冒泡和刷新页面
3. Vue对象提供的属性功能 3.1 过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 3.1.1 使用Vue.fil ...
- Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖
1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...
- Vue.js-07:第七章 - Vue 实例的生命周期
一.前言 在之前的 Vue 学习中,我们在使用 Vue 时,都会创建一个 Vue 的实例,而每个 Vue 实例在被创建时都要经过一系列的初始化过程.例如,需要设置数据监听.编译模板.将实例挂载到 D ...
- vue 项目实战 (生命周期钩子)
开篇先来一张图 下图是官方展示的生命周期图 Vue实例的生命周期钩子函数(8个) 1. beforeCreate 刚 new了一个组件,无法访问到数据和真实的do ...
- 从零开始学 Web 之 Vue.js(三)Vue实例的生命周期
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
随机推荐
- HarmonyOS NEXT应用开发之使用AKI轻松实现跨语言调用
介绍 针对JS与C/C++跨语言访问场景,NAPI使用比较繁琐.而AKI提供了极简语法糖使用方式,一行代码完成JS与C/C++的无障碍跨语言互调,使用方便.本示例将介绍使用AKI编写C++跨线程调用J ...
- OpenYurt:延伸原生 Kubernetes 到边缘场景下的落地实践
简介: 随着云原生技术的逐步成熟,阿里云容器服务团队在具体落地实践过程中不断探索云原生技术的应用边界.同时随着物联网和 5G 的迅猛发展,传统的边缘计算架构已经不能满足业务发展的需要. 如何基于云原生 ...
- K8s Ingress Provider 为什么选择 MSE 云原生网关?
简介:在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代, ...
- [Go] go build 和 go install 的区别
$ go build 源文件及其包依赖 编译成二进制. install 不仅执行build过程 而且会把编译的二进制放到 $GOPATH/bin/,包放到 $GOPATH/pkg/ Link:http ...
- LLM应用实战:当KBQA集成LLM(二)
1. 背景 又两周过去了,本qiang~依然奋斗在上周提到的项目KBQA集成LLM,感兴趣的可通过传送门查阅先前的文章<LLM应用实战:当KBQA集成LLM>. 本次又有什么更新呢?主要是 ...
- 国产 Web 组态软件 TopStack V5.0 发布
简介 TopStack 是一款轻量型 Web 组态软件,提供设备数据采集.定时任务.控制策略.联动控制.设备告警.设备维护管理.设备绩效管理.能源管理.组态开发.报表开发等核心功能.支持移动端访问,支 ...
- Gradle8.4构建SpringBoot多模块项目
Gradle8.4构建SpringBoot多模块项目 一.基本 1.版本 这个版本是Jdk8最后一个SpringBoot版本 软件 版本 Gradle 8.4 SpringBoot 2.7.15 JD ...
- ES_CCS/R(二):跨集群搜索 Cross-cluster search (CCS)
跨集群搜索(cross-cluster search)使你可以针对一个或多个远程集群运行单个搜索请求. 例如,你可以使用跨集群搜索来筛选和分析存储在不同数据中心的集群中的日志数据. 示例 :在一个集群 ...
- ubuntu_24.04 Noble LTS安装docker desktop启动无窗口及引擎启动失败的解决方法
ubuntu_24.04 LTS安装docker desktop启动无窗口及引擎启动失败的解决方法 1. 安装docker desktop后启动无窗口 现象: 执行sudo apt install . ...
- 轻量级.net standard微信支付登录Nuget开源库
我个人编写的库,在我个人网站,小程序等很多地方都在使用中,大家可以搜索小程序 什邡市宅猫君网络工作室 或者到我的网站 store.zhaimaojun.cn 去体验支付和登录效果. 本库主要实现了na ...