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

第一步安装:npm install pinia

第二步:操作src/main.ts

改变里面的值的信息:

Go 复制代码
<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

整个区域代码:

html 复制代码
<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>
相关推荐
程序员秘密基地6 分钟前
基于html,css,vue,vscode,vs2022,asp.net,aspnet,.net,c#,mysql数据库,在线健身,俱乐部管理系统
前端·vue.js·后端·mysql·asp.net
Mintopia8 分钟前
Three.js 画布纹理:像素世界的魔法编织术
前端·javascript·three.js
天天摸鱼的java工程师8 分钟前
当我成为面试官,我才知道当年那些面试官其实并不是在难为我,而是在考察我面对问题的拆解能力
前端·后端·面试
袁煦丞12 分钟前
泰拉瑞亚远程联机魔法:cpolar内网穿透实验室第617个成功挑战
前端·程序员·远程工作
玲小珑15 分钟前
Next.js 教程系列(十二)API Routes:构建轻量级后端服务
前端·next.js
JinSo21 分钟前
EasyEditor AI 聊天助手:让低代码开发更简单
前端·javascript·github
答案answer25 分钟前
three.js 实现几个炫酷的粒子特效(火焰,烟雾,烟花)
前端·three.js
ObjectX前端实验室40 分钟前
三年写了很多代码,也想写写自己
前端·程序员
满分观察网友z1 小时前
uniapp的navigator跳转功能
前端
江城开朗的豌豆1 小时前
Vue组件DIY指南:手把手教你玩转自定义组件
前端·javascript·vue.js