原生微信小程序手把手创建发布评论效果

news2025/1/17 6:09:06

1.静态设计

1.1标题

1.1.1 wxml文件

  <!-- 标题 -->
  <view class="title">励志语句</view>

1.1.2 wcss文件 

.title{
  font-size: 50rpx;
  text-align: center;
  /* 上左右下 */
  padding: 60rpx 0 30rpx;
}

1.1.3显示 

 

1.2方块卡片

1.2.1 wxml文件

 <view class="card">
    <!-- 数据列表 -->
    <view class="list">
      <view class="list-row">
        <view class="text">1. 每天都是一个新的起点</view>
        <view class="close">
          <icon class="icon-small" type="clear" size="28"></icon>
        </view>
      </view>
      <view class="list-row">
        <view class="text">2. 我们扬帆起航</view>
        <view class="close">
          <icon type="clear" size="28"></icon>
        </view>
      </view>
    </view>
    <view class="count">共2语句</view>
    <view class="comment">
      <input type="text" placeholder="请输入内容" />
      <button type="primary">发送</button>
    </view>
  </view>

1.2.2 wcss文件  

.card{
  width: 690rpx;
  margin: 30rpx;
  /* 设置阴影 */
  box-shadow: 0 15rpx 40rpx rgba(0, 0, 0, .1);
  /* 圆角 */
  border-radius: 10rpx;
  padding: 30rpx;
  /* 怪异盒子 */
  box-sizing: border-box;
}
/* 每一行的样式 */
.card .list .list-row{
  padding: 15rpx 0;
  /* 下边框 */
  border-bottom: 1rpx solid #e8e8e8;
  display: flex;
  /* 两端对齐 */
  justify-content: space-between;
  /* 水平居中 */
  align-items: center;
  /* 怪异盒 */
  box-sizing: border-box;
  }
.card .count{
  padding: 20rpx 0;
  font-size: 30rpx;
  color: #888;
  text-align: center;
}
.card .comment{
  /* 弹性布局 */
  display: flex;
  margin-top: 20rpx;
}
.card .comment input{
  flex: 4;
  background-color: #f4f4f4;
  margin-right: 20rpx;
  height: 64rpx;
  border-radius: 8rpx;
  /* 让placeholder与border留有一定距离 */
  padding: 0 20rpx;
}
.card .comment button{
  flex: 1;
}

1.2.3显示  

 

 

2. js

2.1表单数据双向绑定

  <input type="text" placeholder="请输入内容" model:value="{{inputValue}}"   />
  data: {
    inputValue:"",
}

2.2声明数组,遍历

  data: {
    // 双向绑定的表单
    inputValue:"",
    // 数组
    list:[
      {id:"123154",message:"姬霓太美"},
      {id:"65465465",message:"鸡哥早上好"},
      {id:"123154",message:"捕获野生的鸡群"},
    ],
  },
      <view class="list-row" wx:for="{{list}}" wx:key="id">
        <view class="text">{{index+1}}.{{item.message}}</view>
        <view class="close">
          <icon class="icon-small" type="clear" size="28"></icon>
        </view>
     </view>
     

2.3发送按钮绑定send事件,表单输入发送

send(){
  // 获取数据
  let value=this.data.inputValue
  // 获取数组
  let arr=this.data.list
  // 向数组添加数据
  arr.push({
    id:Date.now(),
    message:value
  })

  // 修改数据
  this.setData({
    list:arr,
    inputValue:""
  })
}

2.4删除图标绑定删除事件

deleteIndex(e){
  // 获取索引
let index=e.currentTarget.dataset.index
// 拿到数组
let arr=this.data.list
arr.splice(index,1)
// 修改data数据
this.setData({
  list:arr
})

}

2.5所有删除完后隐藏评论

    <view class="count" wx:if="{{list.length}}">共{{list.length}}语句</view>
    <view class="empty" wx:else>你没有励志语句</view>

2.6显示

 3.效果图

 

 

 

 

 

4.源码

4.1wxml文件

<view>
  <!-- 标题 -->
  <view class="title">励志语句</view>
  <!-- 方块容器 -->
  <view class="card">
    <!-- 数据列表 -->
    <view class="list">
      <view class="list-row" wx:for="{{list}}" wx:key="id">
        <view class="text">{{index+1}}.{{item.message}}</view>
        <view class="close" bindtap="deleteIndex" data-index="{{index}}">
          <icon class="icon-small" type="clear" size="28"></icon>
        </view>
      </view>
    </view>
    <view class="count" wx:if="{{list.length}}">共{{list.length}}语句</view>
    <view class="empty" wx:else>你没有励志语句</view>
    <view class="comment">
      <input type="text" placeholder="请输入内容" model:value="{{inputValue}}" 
      bindconfirm="send"
        />
      <button type="primary" disabled="{{!inputValue.length}}" bindtap="send">发送</button>
    </view>
  </view>
</view>

4.2js文件

// pages/test/test.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 双向绑定的表单
    inputValue:"",
    // 数组
    list:[
      {id:"123154",message:"姬霓太美"},
      {id:"65465465",message:"鸡哥早上好"},
      {id:"123154",message:"捕获野生的鸡群"},
    ],
  },
  // 点击发送按钮
send(){
  // 获取数据
  let value=this.data.inputValue
  // 获取数组
  let arr=this.data.list
  // 向数组添加数据
  arr.push({
    id:Date.now(),
    message:value
  })
  // 修改数据
  this.setData({
    list:arr,
    inputValue:""
  })
},
deleteIndex(e){
  // 获取索引
let index=e.currentTarget.dataset.index
// 拿到数组
let arr=this.data.list
arr.splice(index,1)
// 修改data数据
this.setData({
  list:arr
})

}
   ,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

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

  },

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

  },

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

  },

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

  },

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

  },

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

  },

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

  }
})

 

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

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

相关文章

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python数据处理方法——pkl格式文件

目录 1.pkl文件格式简介&#xff1a; 1.1 什么是 pkl 文件&#xff1f; 1.2 pkl文件和pmml文件的简单区别 1.3 pkl 文件的优点 1.4 使用场景 2.使用 Python 操作 pkl 文件 2.1 对象序列化为 pkl 文件&#xff08;将数据保存为pkl文件&#xff09; 2.2 从 pkl 文件中反…

JS逆向系列之猿人学爬虫第18题-jsvmp - 洞察先机

文章目录 目标网址加密参数分析Python 实现往期逆向文章推荐目标网址 https://match.yuanrenxue.cn/match/18题目标着难度是困难级别,主要还是vmp保护的JS代码调试困难,理清逻辑就会变得简单了 加密参数分析 请求第一页时没有加密参数,从第二页开始,url会携带t和v两个参数…

依次查找数组中指定字符的索引值从左侧开始查找和从右侧开始查找numpy.char.find();numpy.char.rfind()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 依次查找数组中指定字符的索引值 从左侧开始查找和从右侧开始查找 numpy.char.find()&#xff1b;numpy.char.rfind() [太阳]选择题 下列代码最后输出的结果是&#xff1f; import numpy as …

python 运行前端

到html目录下执行&#xff1a;python -m http.server 8080 &#xff08;看你的python版本python or python3 &#xff1f;&#xff09;

机器学习实践(2.2)LightGBM回归任务

前言 LightGBM也属于Boosting集成学习模型(还有前面文章的XGBoost)&#xff0c;LightGBM和XGBoost同为机器学习的集大成者。相比越来越流行的深度神经网络&#xff0c;LightGBM和XGBoost能更好的处理表格数据&#xff0c;并具有更强的可解释性&#xff0c;还具有易于调参、输入…

青岛大学_王卓老师【数据结构与算法】Week05_10_顺序栈的操作3_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

OpenTelemetry

OpenTelemetry&#xff08;简称为Otel&#xff09;是一个开源项目&#xff0c;旨在为分布式系统提供可观测性&#xff08;observability&#xff09;。它提供了一组标准化的API、工具和库&#xff0c;用于生成、收集和分析分布式应用程序的跟踪&#xff08;tracing&#xff09;…

Redis报错-CROSSSLOT keys in request don‘t hash in the same slot

背景 问题涉及&#xff1a;spring security、spring session、redis 问题描述 springbootspringsecurityspringsessionantd 登录功能的时候&#xff0c;在源码中使用到了redis的rename命令&#xff08;如下图所示&#xff09; 在这里就会报错 CROSSSLOT keys in request d…

微信小程序安装和使用 Vant Weapp 组件库

微信小程序安装和使用 Vant Weapp 组件库 1. Vant Weapp 介绍2. Vant Weapp 的 安装2.1. 通过npm安装2.2. 构建npm2.3. 修改 app.json2.4. 修改 project.congfig.json2.5. 测试一下&#xff0c;使用Vant Weapp提供的组件 1. Vant Weapp 介绍 Vant 是一个轻量、可靠的移动端组件…

字符函数和内存函数(二)

目录 一、strtok函数 二、strerror函数 三、memcpy函数 3.1memcpy函数的认识 3.2memcpy函数的模拟实现 四、memmove函数 4.1memmove函数的认识 4.2memmove函数的模拟实现 五、memcmp函数 5.1memcmp函数的认识 5.2memcmp函数的模拟实现 六、memset函数 七、字符分类函…

24 张图搞定 ICMP :最常用的网络命令 ping 和 tracert

ICMP IP 是尽力传输的网络协议&#xff0c;提供的数据传输服务是不可靠的、无连接的&#xff0c;不能保证数据包能成功到达目的地。那么问题来了&#xff1a;如何确定数据包成功到达目的地&#xff1f; 这需要一个网络层协议&#xff0c;提供错误检测功能和报告机制功能&#x…

Python爬虫——urllib_post请求百度翻译

post请求&#xff1a; post的请求参数&#xff0c;是不会拼接在url后面的&#xff0c;而是需要放在请求对象定制的参数中 post请求的参数需要进行两次编码&#xff0c;第一次urlencode&#xff1a;对字典参数进行Unicode编码转成字符串&#xff0c;第二次encode&#xff1a;将字…

GNN环境安装

参考&#xff1a; torch_geometric踩坑实战–安装与运行 亲测有效&#xff01;&#xff01; https://blog.csdn.net/m0_55245520/article/details/130424828pytorch 查看gpu cuda版本 https://blog.csdn.net/jacke121/article/details/93592487 x.1 安装 x.1.1 镜像信息补充…

【LeetCode】594. 最长和谐子序列

594. 最长和谐子序列&#xff08;简单&#xff09; 方法&#xff1a;哈希表计数 思路 题目规定的「和谐子序列」中的最值差值正好为 1&#xff0c;因而子序列排序后必然符合[a,a,.., a 1,a1]形式&#xff0c;即符合条件的和谐子序列长度为相邻两数(差值为 1)的出现次数之和。…

element中icon字体图标的使用

效果图 官方提供的图标 icon字体图标 安装 安装依赖 cnpm install element-plus/icons-vue 编写src/plugins/icons.js import * as components from "element-plus/icons-vue";export default {install: (app) > {for (const key in components) {const comp…

c++智能指针简单示例

代码 #include<iostream> using namespace std; #include<memory> // 头文件class TestClass { private:int Value;public:TestClass(int value) :Value(value) {cout << "构造函数调用" << endl;}~TestClass() {cout << "析构函…

如何有效阅读文献

作为研究生要保持看文献的能力&#xff0c;以《面向大规模图像定位的高效优先匹配&#xff08;Efficient & Effective Prioritized Matching for Large-Scale Image-Based Localization&#xff09;》文献为例&#xff0c;本文记录了自己在学习过程中如何阅读文献技巧。 文…

第八节 学生管理系统 (阶段案例)

学生管理系统 1.1 设计背景 管理系统&#xff0c;主要任务就是使用计算机对学生的各种信息进行日常管理&#xff0c;如&#xff1a; 添加删除修改查询退出系统 程序设计思路 1.2 需求设计分析 打印 “学生管理系统” 的功能菜单,提示用户选择功能序号; print_menu() 打印函…

WebSocket协议基础

文章目录 什么是websocketwebsocet 特点 一、websocket 建立连接流程二、websocket 握手流程客户端握手包2.服务端握手包 三、websocket数据总结参考 什么是websocket WebSOcket 是基于TCP的应用层协议。该协议和http或https 相似&#xff0c;但是却区别于http的一种新的协议。…