知识大杂烩(uniapp)

简介: 知识大杂烩(uniapp)

首先声明:不敢保证都管用,这是我自己实践得来的。

box-shadow:

这段 CSS 样式代码用于创建一个阴影效果,它是通过 `box-shadow` 属性来实现的。让我解释一下这段代码的含义:

- `box-shadow`: 这是 CSS 的属性,用于添加阴影效果到一个元素上。

- `0`: 这是阴影的水平偏移量,表示阴影水平方向上不偏移(即阴影在元素的下方)。

- `14rpx`: 这是阴影的垂直偏移量,表示阴影垂直方向上偏移了 14 个 rpx 单位。rpx 是一种相对长度单位,常用于适配不同屏幕分辨率的移动应用开发。

- `18rpx`: 这是阴影的模糊半径,表示阴影的边缘会模糊化,模糊半径为 18 个 rpx 单位。

- `rgba(0, 0, 0, 0.1)`: 这是阴影的颜色和透明度。`rgba` 表示颜色由红、绿、蓝三个通道组成,每个通道的取值范围是 0 到 255,而最后一个参数表示透明度,取值范围是 0(完全透明)到 1(完全不透明)。在这里,阴影的颜色是黑色(红、绿、蓝都为 0),透明度为 0.1,即略带半透明的黑色阴影。

所以,这段代码的效果是在元素的下方(水平不偏移,垂直下移 14rpx),添加了一个半透明的黑色阴影,阴影的边缘有轻微的模糊效果。您可以根据需要调整偏移量、模糊半径和颜色来定制阴影效果。

box-shadow: 0 14rpx 18rpx rgba(0, 0, 0, 0.1);

rpx适用于小程序,px适用于pc端

uniapp的搜索功能:

链接:http://t.csdn.cn/wdUPg

utc时间转换成为本地时间uniapp版

链接:http://t.csdn.cn/XZryS

uniapp登录(微信小程序目前还能用的版本)

view部分

<button class="checkboxstr" @click="wxlogin" open-type="chooseAvatar" @chooseavatar="wxlogin">
                <image style="width: 50rpx;height: 50rpx;margin-top: 10rpx;" src="https://pic.imgdb.cn/item/64f71ef9661c6c8e54b5cc40.png" mode=""></image>
                <text style="margin-top: -10rpx;justify-content: center;display: flex;">微信授权登录</text> </button>

script部分

// 登录
      wxlogin() {
        // console.log(e.detail.avatarUrl,'image');
                        // if(e.detail.avatarUrl!=''){
                        //  this.sg = true
                        //  this.avatar=e.detail.avatarUrl
                        //  uni.setStorageSync("uming",e.detail.avatarUrl)
                        // }
        // let that = this;
        this.tanchu_sheng=false;
        //先获取用户的信息
        uni.getUserInfo({
          desc: '登录的数据',
          success(ures) {
            console.log(ures, '返回的用户信息');
            //这个地方的用户信息无论登录成功失败都可以拿到,只是拿到用户的信息
            //在成功的回调中去使用微信登录
            uni.login({
              provider: 'weixin', //使用微信登录
              success(lres) {
                console.log(lres, '获取到的code--------1');
                //我们要根据上面获取的code码去作为请求参数发送给后端
                let params = {
                  code: lres.code
                };
                console.log(lres.code,'查看code--------2');
                // 1
                uni.request({
                  url: '登录接口',//这里用自己的地址获取
                  method: 'POST',
                  data: {
                    code: lres.code
                  },
                  success: (res) => {
                    console.log(res,'测试是否成功?');
                    //获得token完成登录
                    uni.setStorageSync('token', res.data.data.token)
                    uni.setStorageSync('id', res.data.data.id)
                    console.log(res,'登录测试');
                    // 提示
                    uni.showToast({
                      title: `登陆成功`,
                      icon: 'none',
                      duration: 2000,
                      success: () => {
                        // console.log('轻提示显示成功');
                      },
                      fail: (error) => {
                        // console.error('轻提示显示失败', error);
                      }
                    });
                  }
                });
                // 2
              }
            });
          }
        });
      },

uniapp通过url跳转传参

在 PageA 中触发跳转,同时将参数附加到目标页面的 URL 中。

<template>
  <view>
    <!-- 触发跳转到 PageB -->
    <button @click="goToPageB">跳转到 PageB</button>
  </view>
</template>
<script>
export default {
  methods: {
    goToPageB() {
      // 使用 uni.navigateTo 方法跳转到 PageB,并传递参数
      uni.navigateTo({
        url: `/pages/PageB?param1=value1&param2=value2`,
      });
    },
  },
};
</script>

在 PageB 中获取 URL 参数并处理数据。

<template>
  <view>
    <!-- 在 PageB 中显示参数 -->
    <text>参数1:{{ param1 }}</text>
    <text>参数2:{{ param2 }}</text>
  </view>
</template>
<script>
export default {
  data() {
    return {
      param1: '',
      param2: '',
    };
  },
  onLoad(options) {
    // 在页面加载时获取 URL 参数
    this.param1 = options.param1 || '';
    this.param2 = options.param2 || '';
  },
};
</script>

3元表达式

下方是我写的一个小案例

{{shuju_dangan.nickname == null ? '暂无数据' : shuju_dangan.nickname == undefined ? '暂无数据' : shuju_dangan.nickname}}
  1. 如果 shuju_dangan.nickname 的值为 null,则显示 '暂无数据'
  2. 否则,如果 shuju_dangan.nickname 的值为 undefined,同样显示 '暂无数据'
  3. 如果 shuju_dangan.nickname 的值既不是 null 也不是 undefined,则显示 shuju_dangan.nickname 的值。

下方是一个进行简咯日期判断的三元表达式

{{item.end_time <= '2023-08-30' ? '数值1' : '数值2'}}

uniapp图片上传

view部分

<view class="">
      <view class="" style="padding: 30rpx;font-size: 30rpx;">
        上传图片
      </view>
      <view class="" style="margin-left: 2.5%;display: flex;">
        <!-- 图片上传 -->
        <image :src="shujus"  style="width:200rpx ;height: 200rpx;" mode=""></image>
        <u-upload :fileList="fileList1"   width="200rpx" height="200rpx"  @afterRead="afterRead" @delete="deletePic" name="1" multiple
          :maxCount="10"></u-upload>
      </view>
    </view>

script部分

fileList1: [],
        imageUrl: '', // 用于展示选择的图片
        shujus:'',
// 图片上传
      // 删除图片
      deletePic(event) {
        this[`fileList${event.name}`].splice(event.index, 1)
      },
      // 新增图片
      async afterRead(event) {
        // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
        let lists = [].concat(event.file[0].url)
        uni.uploadFile({
          url: '接口', // 仅为示例,非真实的接口地址
          filePath: event.file[0].url,
          name: 'file',
          formData: {
            user: 'test'
          },
          success: (res) => {
            console.log(res.data);
            this.uploadImg = JSON.parse(res.data)
            console.log(this.uploadImg.url,123123);
            this.shujus = this.uploadImg.url;
            uni.showToast({
              title: `图片上传成功`,
              icon: 'none',
              duration: 2000,
              success: () => {
              },
              fail: (error) => {
              }})
            setTimeout(() => {
              resolve(res)
            }, 1000)
          }
        });
        return
        // let fileListLen = this[`fileList${event.name}`].length
        // lists.map((item) => {
        //  this[`fileList${event.name}`].push({
        //    ...item,
        //    status: 'uploading',
        //    message: '上传中'
        //  })
        // })
        // for (let i = 0; i < lists.length; i++) {
        //  const result = await this.uploadFilePromise(lists[i].url)
        //  let item = this[`fileList${event.name}`][fileListLen]
        //  this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
        //    status: 'success',
        //    message: '',
        //    url: result
        //  }))
        //  fileListLen++
        // }
      },
      uploadFilePromise(url) {
        console.log(url,'123123123');
        return
        // return new Promise((resolve, reject) => {
        //  let a =
        // })
      },

setTimeout

setTimeout(function() {
  // 这里放置您希望在延迟之后执行的代码
}, 10); // 10 毫秒的延迟

setTimeout 函数用于创建一个定时器,该定时器将在 10 毫秒后执行函数内的代码块。

background: linear-gradient();

background: linear-gradient(to bottom, #FFFFFF, #EDFEF6);

这段 CSS 代码用于创建一个线性渐变背景,从顶部到底部,由白色渐变到 #EDFEF6 这个颜色。让我解释一下这个代码的含义:

  • background:这是 CSS 属性,用于设置元素的背景样式。
  • linear-gradient:这是背景属性的值,表示要创建一个线性渐变背景。
  • to bottom:这是线性渐变的方向,表示颜色从上到下渐变。您还可以使用其他方向,例如 to top(从下到上)、to left(从右到左)等。
  • #FFFFFF#EDFEF6:这是渐变的起始颜色和结束颜色。在这个例子中,渐变从白色 (#FFFFFF) 开始,到 #EDFEF6 结束。

这段代码的效果是将元素的背景设置为一个从顶部到底部的渐变,颜色逐渐从白色变为 #EDFEF6,这可以用来创建视觉上的渐变效果,使元素的背景看起来更丰富和吸引人。您可以根据需要调整颜色和渐变方向来满足您的设计要求。

split剪切自己想要的数据

下方只是一个简单的示例,在确保自己拿到数据的情况下循环数据中的某个自己想要修改的字段进行修改,切的时候可以是空格 逗号 也可以是某个字母

for (let i = 0; i < res.data.data.length; i++) {
res.data.data[i].end_time = res.data.data[i].end_time.split(' ')[0]
}

uniapp input

这样可以打印到自己的数值

<input type="text" v-model="inputValue" class="" style="width: 70%;margin-top: 40rpx;" @input="name" placeholder="请输入">
inputValue: '',
name(s) {
                console.log(s.detail.value);
            },

uniapp选项卡功能

使用uview组件来进行演示:

<template>
  <view>
    <u-tabs
      :list="list4"
      :activeIndex="activeIndex"
      @change="tabChange"
      lineWidth="30"
      lineColor="#f56c6c"
      :activeStyle="{
        color: '#303133',
        fontWeight: 'bold',
        transform: 'scale(1.05)'
      }"
      :inactiveStyle="{
        color: '#606266',
        transform: 'scale(1)'
      }"
      itemStyle="height: 60px;background-color:#ffffff;width:30%"
    ></u-tabs>
  </view>
</template>
<script>
export default {
  data() {
    return {
      list4: [
        { label: '选项卡1', value: 'tab1' },
        { label: '选项卡2', value: 'tab2' },
        { label: '选项卡3', value: 'tab3' },
      ],
      activeIndex: 0, // 当前激活的选项卡索引
    };
  },
  methods: {
    tabChange(index) {
      // 当选项卡切换时触发该方法,更新激活的选项卡索引
      this.activeIndex = index;
    },
  },
};
</script>

具体怎么使用还要看使用者

uniapp轻提示

uni.showToast({
              title: `图片上传成功`,
              icon: 'none',
              duration: 2000,
              success: () => {
              },
              fail: (error) => {
              }})
  • uni.showToast 是 UniApp 中用于显示轻量级提示消息的方法。
  • title 属性用于设置提示消息的内容,这里设置为 '图片上传成功'
  • icon 属性用于设置提示消息的图标,这里设置为 'none' 表示不显示图标,如果需要显示图标,可以设置为 'success''loading' 等。
  • duration 属性用于设置提示消息的显示时间(以毫秒为单位),这里设置为 2000 表示消息将在 2 秒后自动消失。
  • successfail 属性是回调函数,在成功或失败时执行相应的操作。在这个示例中,它们为空函数,没有特定的操作。

这段代码的目的是在图片上传成功后,显示一个包含 '图片上传成功' 文字的提示消息,该消息不包含图标,并在 2 秒后自动消失。

uniapp从当前页面切换到指定标签页

不带有返回标记的标签

uni.switchTab({
                         url:'/pages/页面/页面',
                         success: (res) => {
                          let page = getCurrentPages().pop();
                          if (page == undefined || page == null) return;
                          page.onLoad();
                         }
                      })
  • uni.switchTab 是 UniApp 中用于切换标签页的方法。
  • url 属性用于指定要切换到的标签页的页面路径,这里设置为 '/pages/ji_fen_shang_cheng/ji_fen_shang_cheng',表示要切换到名为 'ji_fen_shang_cheng' 的标签页。
  • success 属性是一个回调函数,当切换成功时执行。在这个示例中,它的操作是重新加载当前页面,以确保在返回到当前页面时数据得到更新。

非常感谢观看

目录
相关文章
|
7月前
|
开发框架 JavaScript API
uniapp知识大杂烩?
uniapp知识大杂烩?
|
7月前
|
数据安全/隐私保护
那些酷炫的网页你也可以做到——第六篇,小型公司web开发
那些酷炫的网页你也可以做到——第六篇,小型公司web开发
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的传统戏曲推广微信小程序的详细设计和实现
基于SpringBoot+Vue+uniapp的传统戏曲推广微信小程序的详细设计和实现
22 0
基于SpringBoot+Vue+uniapp的传统戏曲推广微信小程序的详细设计和实现
|
7月前
|
数据安全/隐私保护 Android开发 UED
【Uniapp 专栏】Uniapp 在社交应用开发中的案例研究
【5月更文挑战第12天】本文探讨了一个使用Uniapp开发的社交应用案例,该应用提供用户注册登录、个人资料管理、好友关系、动态发布、消息聊天等功能。Uniapp的跨平台特性和丰富的组件简化了开发过程,确保应用在iOS和Android上的兼容性。特色功能如话题标签、点赞评论和附近的人增加了用户互动。设计上追求简洁美观,同时重视数据安全。此案例展示了Uniapp在社交应用开发的潜力和优势。
118 4
|
7月前
|
缓存 JavaScript 测试技术
【Uniapp 专栏】在 Uniapp 中实现复杂交互的实战技巧
【5月更文挑战第12天】在Uniapp开发复杂交互时,需掌握组件化、事件机制、状态管理(如Vuex)及布局设计。利用动画增强用户体验,注意性能优化,有效处理与后端数据交互,并通过全面测试确保正确性。持续学习和借鉴社区资源,提升在复杂交互方面的技能。这些实战技巧有助于打造出色Uniapp应用。
124 5
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的外卖点餐系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的外卖点餐系统的详细设计和实现
56 0
|
移动开发 JavaScript 前端开发
探究Uniapp在移动端开发中的应用
探究Uniapp在移动端开发中的应用
207 0
|
数据采集 存储 缓存
【浅入浅出】现代前端框架单页面
【浅入浅出】现代前端框架单页面
126 0
【浅入浅出】现代前端框架单页面
|
小程序 JavaScript 前端开发
目前为止最全的微信小程序项目实例
目前为止最全的微信小程序项目实例
360 0
|
存储 监控 JavaScript
基于vue + electron创造一个随心开发组件的跨端桌面应用(持续更新~)(二)
下面我会从这个应用的一些功能的实现细节讲起,包括初始化,托盘菜单,开机自启,存储用户数据,GitHub信息健康,翻页时钟,打包配置除此之外还有还有项目的使用方式与功能介绍,希望可以给掘友带来帮助。
331 0
基于vue + electron创造一个随心开发组件的跨端桌面应用(持续更新~)(二)