微信小程序安装 Vant 组件库与API Promise组件库并实现简单的增删改查

news2025/1/19 11:05:03
  1. 在项目内右键空白处选择在外部终端打开

2、在终端窗口输入 npm init -y,创建package-lock.json

npm init -y

3、在终端输入npm i @vant/weapp@1.3.3 -S --production,创建node_modules文件夹

npm i @vant/weapp@1.3.3 -S --production

4、详情-本地设置,使用npm模块

5、app.json中删除style:v2这行

6、添加api-promise模块

npm i --save miniprogram-api-promise@1.0.4

7、工具-构建npm,构建后可以看到node_modules中的包打包到miniprogram_npm包中

8、在app.js中导入api-promise包

import { promisifyAll } from 'miniprogram-api-promise'
const wxp = wx.p = {}
promisifyAll(wx,wxp)

9、调用van中的组件,在app.json中添加如下代码

  "usingComponents": {
    "van-button": "@vant/weapp/button/index",
    "van-field": "@vant/weapp/field/index",
    "van-cell": "@vant/weapp/cell/index",
    "van-cell-group": "@vant/weapp/cell-group/index",
    "van-toast": "@vant/weapp/toast/index"
  }

10(1)、开始测试,新建一个页面, 在wxml中添加如下代码

<view class="buttons">
  <van-button type="warning" bindtap="getBookList">查询所有</van-button>
  <van-button type="warning" bindtap="addBookUI">添加</van-button>
  <van-button type="warning" bindtap="getByNameUI">根据书名查询</van-button>
  <van-button type="warning" bindtap="deleteByIdUI">根据id删除</van-button>
</view>

<!-- 根据书名查询 -->
<view class="selectUI" wx:if="{{bookVisiable}}">
  <van-cell-group>
    <van-field model:value="{{ bookName }}" placeholder="请输入书名查询" border="{{ true }}" />
  </van-cell-group>
  <van-button type="warning" bindtap="getByName">查询</van-button>

  <view class="book" wx:if="{{list.length>0}}">
    <van-cell wx:for="{{list}}"  title="{{index+1+'. '+item.name}}" wx:key="id" is-link link-type="navigateTo" url="/pages/desc/desc?name={{item.name}}&description={{item.description}}" />
  </view>
</view>

<!-- 根据id删除 -->
<view class="deleteUI" wx:if="{{deleteVisiable}}">
  <van-cell-group>
    <van-field model:value="{{ id }}" placeholder="请输入删除id" border="{{ true }}" />
  </van-cell-group>
  <van-button type="warning" bindtap="deleteById">根据id删除</van-button>
</view>

<!-- 查询全部 -->
<view class="selectAllUI" wx:if="{{listVisiable}}">
  <van-cell wx:for="{{list}}" title="{{item.id+'. '+item.name}}" wx:key="id"  is-link link-type="navigateTo" url="/pages/desc/desc?name={{item.name}}&description={{item.description}}" />
</view>

<!-- 添加数据 -->
<view class="addItemUI" wx:if="{{addVisiable}}">
  <van-cell-group >
    <van-field  model:value="{{ name }}" placeholder="请输入书名" border="{{ true }}" />
    <van-field  model:value="{{ description }}" type = "textarea" autosize = "{{true}}" placeholder="请输入介绍" border="{{ true }}" />
  </van-cell-group>
  <van-button type="warning" bindtap="addBook">添加数据</van-button>
</view>

<van-toast id="van-toast" />

10(2)在js中添加如下代码

// pages/text/text.js
import Toast from '@vant/weapp/toast/toast';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    bookName: '',
    list:[],
    listVisiable:false,
    bookVisiable:false,
    addVisiable:false,
    deleteVisiable:false,
    book:{},
    name:'',
    description:''

  },
  //添加按钮
  addBookUI(){
    this.setData({
      name:'',
      description:'',
      listVisiable: false,
      bookVisiable:false,
      addVisiable:true,
      deleteVisiable:false
    })
  },
   //根据id删除按钮
   deleteByIdUI(){
    this.setData({
      bookName:'',
      book:{},
      listVisiable: false,
      bookVisiable:false,
      addVisiable:false,
      deleteVisiable:true
    })
  },
  //根据书名查询按钮
  getByNameUI(){
    this.setData({
      bookName:'',
      book:{},
      list:[],
      listVisiable: false,
      bookVisiable:true,
      addVisiable:false,
      deleteVisiable:false
    })
  },
  //获取列表
  async getBookList() {
    const {data: res}  = await wx.p.request({
      method: 'GET',
      url: 'http://localhost:8080/book/list'
    })
    this.setData({
      list:res.data,
      listVisiable: true,
      bookVisiable:false,
      addVisiable:false,
      deleteVisiable:false
    })
    console.log(this.data.list)
  },
  //添加数据
  async addBook() {
    const {data: res}  = await wx.p.request({
      method: 'POST',
      url: 'http://localhost:8080/book/add',
      data:{
        name:this.data.name,
        description:this.data.description
      }
    })
    Toast.success('添加成功');
    this.setData({
      name:'',
      description:''
    })

    console.log(res)
  },
    //根据书名查询数据
    async getByName() {
    
      const {data: res}  = await wx.p.request({
        method: 'GET',
        url: `http://localhost:8080/book/findByBookName/${this.data.bookName}`,
      })
      this.setData({
        list:res.data,
        listVisiable: false,
        bookVisiable:true,
        addVisiable:false
      })
      console.log(this.data.book)
    },
    //根据id删除
    async deleteById() {
      const {data: res}  = await wx.p.request({
        method: 'DELETE',
        url: `http://localhost:8080/book/${this.data.id}`,
      })
      console.log(res)
    },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      bookName:'',
      book:{},
      listVisiable: true,
      bookVisiable:false,
      addVisiable:false,
      deleteVisiable:true
    })
    this.getBookList()

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

11、点击查询所有,获取本地搭的后台中的数据,点击添加,然后再次查询,可以看到数据添加成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue2.0开发之——Vue组件-组件的实例对象(36)

一 概述 浏览器无法直接解析Vue文件package.json中的’vue-template-compiler’将vue结尾的文件解析为js文件交给浏览器处理Count组件实例对象 二 浏览器无法直接解析Vue文件 将Vue文件拖放到浏览器中无法直接显示 三 package.json中的’vue-template-compiler’将vue结尾的文…

软件著作权登记指南

一、什么是计算机软件《计算机软件保护条例》第二条、第三条规定&#xff0c;本条例所称计算机软件&#xff08;以下简称软件&#xff09;&#xff0c;是指计算机程序及其有关文档&#xff1b;&#xff08;一&#xff09;计算机程序&#xff0c;是指为了得到某种结果而可以由计…

第13章 Token的Postman、Swagger和Vue调试

1 准备工作 1.1 WebApi.Controllers.JwtSettingModel namespace WebApi.Test { /// <summary> /// 【Jwt设置模型--纪录】 /// <remarks> /// 摘要&#xff1a; /// 通过该纪录中的属性成员实例存储“AppSettings.json”文件中的Jwt相关设置数据&#xff0…

java应用程序多级缓存架构

多级缓存架构 一级缓存&#xff1a;OpenResty—Lua—Redis 二级缓存&#xff1a;Nginx proxy-cache 三级缓存&#xff1a;Redis 使用OpenResty lua脚本访问redis proxy-cache 缓存注解 <!--依赖--> <dependency><groupId>org.springframework.boot</gr…

最新研究发现:天然海绵含有抑制Omicron变体感染的天然化合物

本文原文首发于2023年1月9日E-LIFESTYLE &#xff08;阅读时间4分钟&#xff09; 附标题&#xff1a;通过研究370多种来自植物、真菌和海绵等天然来源的化合物&#xff0c;寻找可用于治疗新冠肺炎的新抗病毒药物&#xff0c;用这些天然化合物制成的溶液中沐浴人类被SARS-CoV-2感…

SolidWorks装配体保存成零件,能有效压缩文件体积,方便二次装配

SolidWorks装配体保存成零件&#xff0c;能有效压缩文件体积&#xff0c;方便二次装配1. 先使用solidworks打开我们要转换成零件的装配体2. 然后点击上方保存下面的小三角&#xff0c;选择另存为3.之后选择要保存的位置&#xff0c;点击文件格式&#xff0c;然后在文件格式里找…

Zabbix监控服务详解+实战

目录 一、监控体系概述 1. 为什么需要监控 2. 监控目标与流程 &#xff08;1&#xff09;监控的目标 &#xff08;2&#xff09; 监控的流程 3. 监控的对象 &#xff08;1&#xff09;CPU监控 &#xff08;2&#xff09;磁盘监控 &#xff08;3&#xff09;内存监控 …

win7电脑怎么录屏?免费的录屏软件分享

现在大家的电脑一般是win10、11系统&#xff0c;但是还是有一些小伙伴喜欢使用win7系统的电脑。那你知道win7电脑怎么录屏吗&#xff1f;有没有好用且简单的win7电脑录屏软件推荐&#xff1f;当然有&#xff01;今天小编给使用win7电脑的小伙伴推荐两款简单且好用的电脑录屏软件…

各类字符串函数和内存函数的使用以及模拟(万字解析)

函数一.字符串函数(使用都需要包含string.h)1.求字符串长度—strlen2.长度不受限制的字符串函数1.strcpy-字符串拷贝2.strcat-追加字符串3.strcmp-字符串比较4.为什么长度不受限制3.长度受限制的字符串函数—strncopy,strncat,strncmp4.字符串查找1.strstr-判断是否为子字符串2…

Linux 文件句柄导致系统压力测试时出现错误率

最近&#xff0c;在对一个golang写的获取商品详情信息的接口做压力测试时&#xff0c;tps 单机可以达到1400多&#xff0c;但是发现每当压力测试开始2分钟多时就会出现502或504 错误&#xff0c;整体的错误率在0.5%左右。一开始是怀疑代码写的效率不高&#xff0c;是不是协程开…

【SAP Hana】SAP HANA SQL 进阶教程

SAP HANA SQL 进阶教程5、HANA SQL 进阶教程&#xff08;1&#xff09;Databases&#xff08;2&#xff09;User & Role&#xff08;3&#xff09;Schemas&#xff08;4&#xff09;Tables&#xff08;5&#xff09;Table Index&#xff08;6&#xff09;Table Partitions&…

于仕琪C/C++ 学习笔记

C函数指针有哪几类&#xff1f;函数指针、lambda、仿函数对象分别是什么&#xff1f;如何利用谓词对给定容器进行自定义排序&#xff1f;传递引用和传递值的区别&#xff1f;传递常引用和传递引用之间的区别&#xff1f;传递右值引用和传递引用之 间的区别&#xff1f;函数对象…

【PWA学习】6. 使用 Service Worker 进行后台同步

引言 你一定遇到过类似这样的场景&#xff1a; 当用手机填写完一张信息表单点击"提交"时&#xff0c;恰好手机网络很差或没有网络&#xff0c;这时候只能盯着手机看着旋转的小圆圈。经过长时间等待后依然没有结果&#xff0c;这时候关闭浏览器&#xff0c;请求也被终…

红外传感器使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、红外传感器&#xff1f;二、使用步骤1.确保驱动已经安装2.安装GPIO工具3.安装GPIO的Python支持4.Python3代码5.测试结果总结前言 最近在做一个项目需要用到…

Linux命令学习

1、linux目录结构 linux目录结构是一个树状结构 当我们直接打开ubuntu的控制台&#xff0c;进入的是 home 目录下的创建的用户&#xff0c;这里是真正的 家 目录 或者在安装 ssh 服务器之后可以直接通过 windows 命令行 访问 ubuntu 的ssh服务器&#xff0c;进入的是 home 目录…

【规范】我们是怎么做MySQL数据库安全管理的?

一、背景说明 MySQL作为数据库管理系统&#xff0c;里面保存企业的重要业务数据&#xff0c;因此保证数据库的安全性非常重要&#xff0c;如何保证数据库的安全性呢&#xff1f;用户和用户权限管理是一个很重要的方面。 MySQL数据库具有非常高的安全性&#xff0c;为我们提供…

Vue 2 即将成为过去

自从 2020 年 9 月 18 日 Vue 3 正式发布以来&#xff0c;已经有两年多时间了&#xff0c;终于在 2022 年 2 月 7 日 Vue 作者发布了一则消息&#xff1a;Vue 3 将成为新的默认版本。与此同时&#xff0c;Vue 相关官方周边的核心库 latest 发布标签将指向其 Vue 3 的兼容版本。…

从0到1完成一个Vue后台管理项目(二十一、网上地图资源、树形控件及路由权限分析、路由守卫)

往期 从0到1完成一个Vue后台管理项目&#xff08;一、创建项目&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;二、使用element-ui&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;三、使用SCSS/LESS&#xff0c;安装图标库&#xff09; 从0到1完成一个Vu…

JAVA SE 详解类和对象

类和对象 面向对象的初步认知 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。 面 向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向…

ArcGIS基础实验操作100例--实验79分区统计降雨量

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验79 分区统计降雨量 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…