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

第二十四:5.2【搭建 pinia 环境】axios 异步调用数据

第一步安装:npm install pinia

第二步:操作src/main.ts

改变里面的值的信息:

<div class="count">
    <h2>当前求和为:{{ sum }}</h2>
    <select v-model.number="n">  // .number 这里是解决整数问题
      <option value="1">1</option>
      <option value="2">2</option>  // 如果要整数的话:  :value
      <option value="3">3</option>
    </select>
    <button @click="add">加</button>
    <button @click="minus">减</button>
  </div>
</template>

<script setup lang="ts" name="Count">
  import { ref } from "vue";
  // 数据
  let sum = ref(1) // 当前求和
  let n = ref(1) // 用户选择的数字

  // 方法
  function add(){
    sum.value += n.value
  }
  function minus(){
    sum.value -= n.value
  }
</script>

安装 axios    : npm i axios

快速引入: import axios from "axios";

安装: npm i nanoid    // 安装唯一id 扩展

https://api.uomg.com/api/rand.qinghua?format=json

整个区域代码:

<template>
    <div class="talk">
      <button @click="getLoveTalk">获取一句土味情话</button>
      <ul>
        <li v-for="talk in talkList" :key="talk.id">{{talk.title}}</li>
      </ul>
    </div>
  </template>
  
  <script setup lang="ts" name="LoveTalk">
    import {reactive} from 'vue'
    import axios from "axios";
    import {nanoid} from 'nanoid'
    // 数据
    let talkList = reactive([
      {id:'ftrfasdf01',title:'今天你有点怪,哪里怪?怪好看的!'},
      {id:'ftrfasdf02',title:'草莓、蓝莓、蔓越莓,今天想我了没?'},
      {id:'ftrfasdf03',title:'心里给你留了一块地,我的死心塌地'}
    ])
    // 方法
    async function getLoveTalk(){
      // 发请求,下面这行的写法是:连续解构赋值+重命名
      let {data:{content:title}} = await axios.get('https://api.uomg.com/api/rand.qinghua?format=json')
      // 把请求回来的字符串,包装成一个对象
      let obj = {id:nanoid(),title}
      // 放到数组中
      talkList.unshift(obj)
    }
  </script>
  
  <style scoped>
    .talk {
      background-color: orange;
      padding: 10px;
      border-radius: 10px;
      box-shadow: 0 0 10px;
    }
  </style>

相关文章:

  • HTML——前端基础1
  • threejs:document.createElement创建标签后css设置失效
  • 一周学会Flask3 Python Web开发-Jinja2模板继承和include标签使用
  • nss刷题5(misc)
  • 《操作系统 - 清华大学》 8 -9:进程管理:什么是线程
  • Android AsyncLayoutInflater异步加载xml布局文件,Kotlin
  • CentOS 7 日志切割实战:Logrotate 详解与配置指南
  • 剑指 Offer II 031. 最近最少使用缓存
  • excel单、双字节字符转换函数(中英文输入法符号转换)
  • 鸿蒙-AVPlayer
  • smolagents学习笔记系列(七)Examples-Self-correcting Text-to-SQL
  • Java一揽子集合整理
  • 网页制作09-html,css,javascript初认识のhtml如何使用表单
  • 数据安全管理的AI工具有哪些?
  • [LeetCode]day29 232.用栈实现队列
  • ZT16 小欧的括号嵌套
  • Linux网络之传输层协议(UDP,TCP协议)
  • 【转】Python for Data Analysis第二版【中文版】-第三章
  • 24.[前端开发-JavaScript基础]Day01-插件配置-变量-数据
  • React低代码项目:Redux 状态管理
  • 玉渊谭天:美方多渠道主动接触中方希望谈关税
  • 西湖大学2025年上海市综合评价招生简章发布
  • 万达电影去年净利润亏损约9.4亿元,计划未来三年内新增25块IMAX银幕
  • 国台办:相关优化离境退税政策适用于来大陆的台湾同胞
  • 宜昌打造“算力之都”:产业链快速延伸,追逐千亿级产值
  • 走访中广核风电基地:701台风机如何乘风化电,点亮3000万人绿色生活