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

Vue入门记录(一)

效果

本文为实现如下前端效果的学习实践记录:

实践

入门的最佳实践我觉得是先去看官网,官网一般都会有快速入门指引。

根据官网的快速上手文档,构建一个新的Vue3+TypeScript,查看新建的项目结构:

image-20240726084701804

现在先重点关注components、views、App.vue与main.ts。

components目录通常用于存放可复用的Vue组件。

views目录用于存放页面级别的组件。这些组件通常对应应用的不同页面或路由视图。

App.vue是Vue应用的根组件。它通常包含应用的全局样式和结构,是Vue实例挂载的起点,所有的其他组件都是从这个根组件开始渲染的。

main.ts是Vue应用的入口文件。它负责创建Vue实例并将其挂载到DOM中。

学习Vue不单单学习Vue框架还要学习相关生态,作为刚开始学习Vue的人,自己写css或许不是一个好的选择,但是没关系,现在市面上已经有很多组件库了,一般只需要用这些组件库就满足绝大多数需求了。

刚开始学习可以使用element-plus。

image-20240726090609568

GitHub地址:https://github.com/element-plus/element-plus

官网地址:https://element-plus.org

在官网上了解其使用方式,这里简单学习,可以完整引入,在main.ts中添加:

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'app.use(ElementPlus)

如下所示:

image-20240726091526559

现在就可以开始用ElementPlus的组件了。

观察App.vue:

image-20240726091708592

只有views下的HomeView.vue。

再来看下HomeView.vue:

image-20240726091924491

只有来自components的Kuakua.vue。

再来看下Kuakua.vue:

<script setup lang="ts">
import { ref } from 'vue'
import axios from 'axios'const prompt1 = ref('')
const fetchData = async () => {try {const response = await axios.get('https://192.168.1.6:7101/Semantickernel');prompt1.value = response.data;} catch (error) {console.error('There was a problem with the Axios request:', error);}};
</script><template><div><el-row><el-col :span="24"><el-space direction="vertical">       <el-text type="primary" size="large">夸夸</el-text>        <el-inputv-model="prompt1"style="width: 300px":rows="8"type="textarea"placeholder="Please input"clearable/>  <el-button type="primary" round @click="fetchData">夸夸</el-button></el-space></el-col></el-row></div>
</template>

使用了ElementPlus中的UI组件进行布局。

使用v-model将prompt1绑定到el-input。

v-model的文档:https://cn.vuejs.org/guide/components/v-model.html#component-v-model

image-20240726093140157

刚开始不需要全部看完,知道是为了实现双向绑定即可。

<el-button type="primary" round @click="fetchData">夸夸</el-button>

表示一个点击会触发fetchData函数的按钮。@clickv-on:的简写:

image-20240726093528032

在这个事件处理函数中我们需要向后端接口发送一个get请求,可以使用axios来发送http请求。

安装axios,引入axios,使用axios发送请求:

import axios from 'axios'const fetchData = async () => {try {const response = await axios.get('https://192.168.1.6:7101/Semantickernel');prompt1.value = response.data;} catch (error) {console.error('There was a problem with the Axios request:', error);}};

即可实现开头的效果。

总结

Vue框架相关:了解Vue项目结构各个部分的作用,了解组件化开发思想,学习v-model、v-on。

前端生态相关:了解element-plus与axios。

TypeScript相关:类型注解和类型推断、箭头函数、异步函数(async/await)、模块导入。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • XSSFWorkbook 和 SXSSFWorkbook 的区别
  • Torchvision.dataset CIFAR等数据集使用
  • vue 给特定满足条件的表单数据添加背景颜色,组件的 row-class-name
  • 使用puma部署ruby on rails的记录
  • 物联网主机 E6000:智慧应急领域的创新力量
  • html-docx-js和file-saver实现html导出word
  • vue3前端开发-小兔鲜项目-登录组件的开发表单验证
  • Android WebViewClient 的 `shouldOverrideUrlLoading` 方法
  • 学习在测试时学习(Learning at Test Time): 具有表达性隐藏状态的循环神经网络(RNNs)
  • Linux中tomcat下载教程
  • 国产系统银河麒麟SP10桌面版安装nvidia 4060TI驱动
  • 算法第十五天:leetcode19.删除链表的倒数第N个节点
  • Visual stdio code 运行C项目环境搭建
  • openCv -- 优势
  • Docker 搭建Elasticsearch详细步骤
  • Centos6.8 使用rpm安装mysql5.7
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • gulp 教程
  • JavaScript服务器推送技术之 WebSocket
  • Linux CTF 逆向入门
  • nodejs:开发并发布一个nodejs包
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • spring boot下thymeleaf全局静态变量配置
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 闭包--闭包作用之保存(一)
  • 多线程 start 和 run 方法到底有什么区别?
  • 翻译:Hystrix - How To Use
  • 工程优化暨babel升级小记
  • 关于使用markdown的方法(引自CSDN教程)
  • 京东美团研发面经
  • 实习面试笔记
  • 微信小程序设置上一页数据
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 怎么把视频里的音乐提取出来
  • AI算硅基生命吗,为什么?
  • 阿里云移动端播放器高级功能介绍
  • ​ssh免密码登录设置及问题总结
  • #AngularJS#$sce.trustAsResourceUrl
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (30)数组元素和与数字和的绝对差
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二十六)Java 数据结构
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (剑指Offer)面试题34:丑数
  • (九)信息融合方式简介
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)iOS字体