探索uni-app:构建跨平台应用的神奇工具

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
简介: 探索uni-app:构建跨平台应用的神奇工具

uni-app 是一个基于 Vue.js 的跨平台开发框架,它可以同时构建运行在多个平台的应用程序,如小程序、H5、App、快应用等

uni-app 内置了一些常用的组件,以下是其中一些常见的内置组件

📚1. 视图容器类组件

<view>:视图容器,类似于div元素

以下是一个简单的 uni-app 代码示例,展示了如何使用 <view> 组件创建视图容器:

<template>
  <view class="container">
    <view class="box">
      <view class="content">
        <text>这是一个视图容器示例</text>
      </view>
    </view>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.box {
  background-color: #f5f5f5;
  padding: 20px;
}
.content {
  text-align: center;
}
</style>

在上述示例中,我们使用了 <view> 组件创建了一个视图容器,并使用了内联样式和类选择器来设置容器的样式。

  • 外层的 <view> 标签具有 class="container",设置了容器的宽度为100%、高度为100vh(视窗高度),并使用 display: flex 和相关属性将内容居中显示。
  • 内层的 <view> 标签具有 class="box",设置了容器的背景颜色为 #f5f5f5,并添加了一些内边距。
  • <text> 标签位于最内层的 <view> 容器中,显示文本内容。

您可以将以上代码复制到您的 uni-app 项目中的页面文件中,然后查看效果。注意,在实际开发中,您需要根据需求来调整样式和布局,以适应您的具体情况。

<scroll-view>:可滚动的视图容器

以下是一个简单的 uni-app 代码示例,展示了如何使用 <scroll-view> 组件创建可滚动的视图容器:

<template>
  <view class="container">
    <scroll-view class="scroll-view" scroll-y>
      <view class="content">
        <text v-for="index in 20" :key="index">这是第{{ index }}行文本</text>
      </view>
    </scroll-view>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 100vh;
}
.scroll-view {
  height: 100%;
}
.content {
  padding: 20px;
}
</style>

在上述示例中,我们使用了 <scroll-view> 组件创建了一个可滚动的视图容器,并使用了类选择器来设置容器的样式。

  • 使用 scroll-y 属性启用垂直滚动。
  • 外层的 <view> 标签具有 class="container",设置了容器的宽度为100%、高度为100vh(视窗高度)。
  • <scroll-view> 组件具有 class="scroll-view",设置了容器的高度为100%。
  • 内部的 <view> 标签具有 class="content",设置了一些内边距。
  • <text> 标签位于最内层的 <view> 容器中,使用 v-for 循环生成了多行文本内容。

通过使用 <scroll-view> 组件,当内容超出容器高度时,用户就可以在垂直方向上滚动视图。

您可以将以上代码复制到您的 uni-app 项目中的页面文件中,然后查看效果。请注意,在实际开发中,您需要根据需求来调整样式和布局以适应您的具体情况,并根据实际内容来填充 <text> 标签中的文本。

📚2. 基础内容类组件

<text>:文本内容,类似于span元素

以下是一个简单的 uni-app 代码示例,展示了如何使用 <text> 组件来显示文本内容:

<template>
  <view class="container">
    <text class="text">Hello, World!</text>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.text {
  font-size: 20px;
}
</style>

在上述示例中,我们使用了 <text> 组件来显示文本内容,并使用了类选择器来设置文本的样式。

  • 外层的 <view> 标签具有 class="container",设置了容器的宽度为100%、高度为100vh(视窗高度),并使用 display: flex 和相关属性将文本内容居中显示。
  • <text> 标签具有 class="text",设置了文本的字体大小为20px。

您可以将以上代码复制到您的 uni-app 项目中的页面文件中,然后查看效果。注意,在实际应用中,您可以替换 <text> 标签中的文本内容以显示您想要的具体文本信息,并根据需要调整文本样式。

<icon>:图标组件,支持系统图标和自定义图标

在 uni-app 中,可以使用 <uni-icons> 组件来实现图标的显示,支持系统图标和自定义图标。

以下是一个示例代码,展示了如何使用 <uni-icons> 组件显示系统图标和自定义图标:

<template>
  <view class="container">
    <!-- 显示系统图标 -->
    <uni-icons name="check" size="32"></uni-icons>
    <!-- 显示自定义图标 -->
    <uni-icons name="my-icon" size="32"></uni-icons>
  </view>
</template>
<style scoped>
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
}
</style>
<script src="//aeu.alicdn.com/waf/interfaceacting220819.js"></script><script src="//aeu.alicdn.com/waf/antidomxss_v640.js"></script><script>
export default {
  components: {
    'uni-icons': '@/components/uni-icons/uni-icons' // 请根据实际路径修改引用组件的路径
  }
};
</script>

在上述示例中,我们通过 <uni-icons> 组件来显示图标,并传递了一些属性:

  • name:指定要显示的图标名称。对于系统图标,可以使用 Uni-App 官方提供的图标库中的名称,例如 “check” 表示勾选图标;对于自定义图标,可以使用自己定义的图标名称。
  • size:指定图标的大小,单位为像素。

您需要先下载并导入 <uni-icons> 组件到项目中,然后根据实际路径修改引用组件的路径。注意,自定义图标需要将对应的图标文件放置在项目中,并在 <uni-icons> 组件中进行相应的配置。

通过上述方式,您可以在 uni-app 中使用 <uni-icons> 组件来显示系统图标和自定义图标。

📚3. 表单组件

<input>:输入框组件

以下是一个简单的 uni-app 代码示例,展示了如何使用 <input> 组件创建输入框:

<template>
  <view class="container">
    <input class="input" type="text" placeholder="请输入内容" />
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.input {
  width: 200px;
  height: 40px;
  border: 1px solid #ccc;
  padding: 10px;
}
</style>

在上述示例中,我们使用了 <input> 组件创建了一个文本输入框,并使用了类选择器来设置输入框的样式。

  • 外层的 <view> 标签具有 class="container",设置了容器的宽度为100%、高度为100vh(视窗高度),并使用 display: flex 和相关属性将输入框居中显示。
  • <input> 标签具有 class="input",设置了输入框的宽度为200px、高度为40px,并设置了边框样式、内边距。

您可以将以上代码复制到您的 uni-app 项目中的页面文件中,然后查看效果。该输入框将显示一个占位符文本 “请输入内容”,用户可以在输入框中输入文本内容。根据实际需求,您可以自行调整输入框的样式和属性,例如更改输入框类型、更改占位符文本等。

<textarea>:多行文本输入组件

以下是一个简单的 uni-app 代码示例,展示了如何使用 <textarea> 组件创建多行文本输入框:

<template>
  <view class="container">
    <textarea class="textarea" placeholder="请输入内容"></textarea>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.textarea {
  width: 200px;
  height: 100px;
  border: 1px solid #ccc;
  padding: 10px;
}
</style>

在上述示例中,我们使用了 <textarea> 组件创建了一个多行文本输入框,并使用了类选择器来设置输入框的样式。

  • 外层的 <view> 标签具有 class="container",设置了容器的宽度为100%、高度为100vh(视窗高度),并使用 display: flex 和相关属性将多行文本输入框居中显示。
  • <textarea> 标签具有 class="textarea",设置了多行文本输入框的宽度为200px、高度为100px,并设置了边框样式、内边距。

您可以将以上代码复制到您的 uni-app 项目中的页面文件中,然后查看效果。该多行文本输入框将显示一个占位符文本 “请输入内容”,用户可以在输入框中输入多行文本内容。根据实际需求,您可以自行调整输入框的样式和属性,例如更改占位符文本、设置最大长度等。

其他表单组件(感兴趣可以在官网进行查阅)

  • <button>:按钮组件
  • <checkbox>:复选框组件
  • <radio>:单选框组件
  • <switch>:开关组件

📚4. 导航组件

<navigator>:页面跳转组件

在 uni-app 中,可以使用 <navigator> 组件进行页面跳转。<navigator> 组件可以实现在小程序和 APP 端的页面间跳转,并支持跳转传参、打开新页面等功能。

以下是一个示例代码,展示了如何使用 <navigator> 组件进行页面跳转:

<template>
  <view class="container">
    <!-- 在当前页面跳转到目标页面 -->
    <navigator url="/pages/targetPage"></navigator>
    <!-- 带参数跳转到目标页面 -->
    <navigator url="/pages/targetPage?id=123&name=John"></navigator>
    <!-- 在新窗口打开目标页面 -->
    <navigator url="/pages/targetPage" open-type="navigate"></navigator>
  </view>
</template>
<style scoped>
.container {
  width: 100%;
  height: 100vh;
}
</style>
<script src="//aeu.alicdn.com/waf/interfaceacting220819.js"></script><script src="//aeu.alicdn.com/waf/antidomxss_v640.js"></script><script>
export default {};
</script>

在上述示例中,我们使用 <navigator> 组件来实现页面跳转,并传递了一些属性:

  • url:指定要跳转的目标页面路径。需要根据实际情况修改为目标页面的路径,例如 “/pages/targetPage”。
  • open-type:指定打开方式。默认为 “navigate”,表示在当前页面内打开目标页面;如果设置为 “navigate”,则会在新的窗口中打开目标页面。

您需要根据实际情况修改跳转目标的路径,并可根据需要传递参数。请注意,在使用 <navigator> 组件进行页面跳转时,需要提前配置好目标页面的路由信息。

通过上述方式,您可以在 uni-app 中使用 <navigator> 组件进行页面跳转,并根据需要传递参数、打开新页面等。

<tabbar>:底部选项卡组件

在 uni-app 中,可以使用 <tabbar> 组件创建底部选项卡,用于在不同页面之间进行切换。<tabbar> 组件可以帮助您实现底部导航栏的功能。

以下是一个示例代码,展示了如何使用 <tabbar> 组件创建底部选项卡:

<template>
  <view class="container">
    <tabbar>
      <!-- 配置选项卡项 -->
      <tabbar-item icon="home" text="首页" url="/pages/home"></tabbar-item>
      <tabbar-item icon="discover" text="发现" url="/pages/discover"></tabbar-item>
      <tabbar-item icon="profile" text="个人" url="/pages/profile"></tabbar-item>
    </tabbar>
    <!-- 显示当前页面内容 -->
    <view class="content">
      <!-- 页面内容 -->
    </view>
  </view>
</template>
<style scoped>
.container {
  width: 100%;
  height: 100vh;
}
.content {
  flex-grow: 1;
}
</style>
<script src="//aeu.alicdn.com/waf/interfaceacting220819.js"></script><script src="//aeu.alicdn.com/waf/antidomxss_v640.js"></script><script>
export default {};
</script>

在上述示例中,我们使用 <tabbar> 组件来创建底部选项卡,并配置了三个选项卡项:

  • <tabbar-item>:每个选项卡项对应一个<tabbar-item>组件。
  • icon:指定选项卡的图标。可以使用 Uni-App 官方提供的图标库中的名称,例如 “home” 表示首页图标。
  • text:指定选项卡的文本。
  • url:指定选项卡点击后跳转的页面路径。需要根据实际情况修改为目标页面的路径,例如 “/pages/home”。

您可以根据需要配置更多选项卡项,并在每个选项卡项中设置图标、文本和跳转路径。

通过上述方式,您可以在 uni-app 中使用 <tabbar> 组件创建底部选项卡,实现页面间的切换。请注意,在创建选项卡时,需要提前配置对应页面的路由信息。

📚5. 媒体组件

<image>:图片内容,用于显示图片

以下是一个简单的 uni-app 代码示例,展示了如何使用 <image> 组件来显示图片内容:

<template>
  <view class="container">
    <image class="image" src="../assets/image.jpg"></image>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.image {
  width: 200px;
  height: 200px;
}
</style>

在上述示例中,我们使用了 <image> 组件来显示图片内容,并使用了类选择器来设置图片的样式。

  • 外层的 <view> 标签具有 class="container",设置了容器的宽度为100%、高度为100vh(视窗高度),并使用 display: flex 和相关属性将图片内容居中显示。
  • <image> 标签具有 class="image",设置了图片的宽度为200px、高度为200px。
  • 图片的路径使用 src 属性指定,这里的路径假设为 ../assets/image.jpg,您可以根据实际情况替换为您项目中的图片路径。

您可以将以上代码复制到您的 uni-app 项目中的页面文件中,并将实际的图片路径指定给 src 属性,然后查看效果。请确保图片存在于指定的路径中,并根据需要调整图片的大小和容器的样式。

<audio>:音频播放组件

在 uni-app 中,可以使用 <audio> 组件来实现音频的播放功能。<audio> 组件是用于在页面中嵌入音频内容的标签。

以下是一个示例代码,展示了如何使用 <audio> 组件播放音频:

<template>
  <view class="container">
    <view class="controls">
      <!-- 播放按钮 -->
      <button @tap="playAudio">播放</button>
      <!-- 暂停按钮 -->
      <button @tap="pauseAudio">暂停</button>
    </view>
    <!-- 音频组件 -->
    <audio :src="audioUrl" :id="audioId" :loop="loop" @ended="audioEnded"></audio>
  </view>
</template>
<style scoped>
.container {
  width: 100%;
  height: 100vh;
}
.controls {
  margin-top: 20px;
}
</style>
<script src="//aeu.alicdn.com/waf/interfaceacting220819.js"></script><script src="//aeu.alicdn.com/waf/antidomxss_v640.js"></script><script>
export default {
  data() {
    return {
      audioUrl: 'https://example.com/audio.mp3', // 音频文件的 URL
      audioId: 'my-audio', // 音频组件的 ID
      loop: false // 是否循环播放
    };
  },
  methods: {
    playAudio() {
      // 播放音频
      uni.createSelectorQuery().select('#' + this.audioId).fields({ context: true }, (res) => {
        if (res) {
          res.context.play();
        }
      }).exec();
    },
    pauseAudio() {
      // 暂停音频
      uni.createSelectorQuery().select('#' + this.audioId).fields({ context: true }, (res) => {
        if (res) {
          res.context.pause();
        }
      }).exec();
    },
    audioEnded() {
      // 音频播放结束时的回调函数
      console.log('音频播放结束');
    }
  }
};
</script>

在上述示例中,我们使用 <audio> 组件来播放音频,并添加了控制按钮来实现播放和暂停功能。具体步骤如下:

  1. data 中定义音频文件的 URL,可以将其替换为实际的音频文件 URL。
  2. <audio> 组件中使用 :src 绑定音频文件的 URL,使用 :id 绑定音频组件的 ID,使用 :loop 绑定是否循环播放。
  3. 在按钮的点击事件处理方法中,使用 uni.createSelectorQuery() 方法获取音频组件的上下文对象,并调用 play() 方法来播放音频,或者调用 pause() 方法来暂停音频。
  4. <audio> 组件上添加 @ended 事件监听器,当音频播放结束时,会触发 audioEnded 方法。

通过上述方式,您可以在 uni-app 中使用 <audio> 组件来实现音频的播放功能,并控制音频的播放和暂停。请注意,音频文件需要提前准备好并提供正确的 URL。

<video>:视频播放组件

在 uni-app 中,可以使用 <video> 组件来实现视频的播放功能。<video> 组件是用于在页面中嵌入视频内容的标签。

以下是一个示例代码,展示了如何使用 <video> 组件播放视频:

<template>
  <view class="container">
    <view class="controls">
      <!-- 播放按钮 -->
      <button @tap="playVideo">播放</button>
      <!-- 暂停按钮 -->
      <button @tap="pauseVideo">暂停</button>
    </view>
    <!-- 视频组件 -->
    <video :src="videoUrl" :id="videoId" :poster="posterUrl" :autoplay="autoplay" :controls="controls" @ended="videoEnded"></video>
  </view>
</template>
<style scoped>
.container {
  width: 100%;
  height: 100vh;
}
.controls {
  margin-top: 20px;
}
</style>
<script src="//aeu.alicdn.com/waf/interfaceacting220819.js"></script><script src="//aeu.alicdn.com/waf/antidomxss_v640.js"></script><script>
export default {
  data() {
    return {
      videoUrl: 'https://example.com/video.mp4', // 视频文件的 URL
      posterUrl: 'https://example.com/poster.jpg', // 视频封面图片的 URL
      videoId: 'my-video', // 视频组件的 ID
      autoplay: false, // 是否自动播放
      controls: true // 是否显示控制条
    };
  },
  methods: {
    playVideo() {
      // 播放视频
      uni.createSelectorQuery().select('#' + this.videoId).fields({ context: true }, (res) => {
        if (res) {
          res.context.play();
        }
      }).exec();
    },
    pauseVideo() {
      // 暂停视频
      uni.createSelectorQuery().select('#' + this.videoId).fields({ context: true }, (res) => {
        if (res) {
          res.context.pause();
        }
      }).exec();
    },
    videoEnded() {
      // 视频播放结束时的回调函数
      console.log('视频播放结束');
    }
  }
};
</script>

在上述示例中,我们使用 <video> 组件来播放视频,并添加了控制按钮来实现播放和暂停功能。具体步骤如下:

  1. data 中定义视频文件的 URL、视频封面图片的 URL,可以将其替换为实际的视频文件 URL 和封面图片 URL。
  2. <video> 组件中使用 :src 绑定视频文件的 URL,使用 :id 绑定视频组件的 ID,使用 :poster 绑定视频封面图片的 URL,使用 :autoplay 绑定是否自动播放,使用 :controls 绑定是否显示控制条。
  3. 在按钮的点击事件处理方法中,使用 uni.createSelectorQuery() 方法获取视频组件的上下文对象,并调用 play() 方法来播放视频,或者调用 pause() 方法来暂停视频。
  4. <video> 组件上添加 @ended 事件监听器,当视频播放结束时,会触发 videoEnded 方法。

通过上述方式,您可以在 uni-app 中使用 <video> 组件来实现视频的播放功能,并控制视频的播放和暂停。请注意,视频文件和封面图片需要提前准备好并提供正确的 URL。

这只是 uni-app 内置组件的一小部分,还有许多其他组件可用于开发跨平台应用程序

您可以查阅官方文档以了解更多关于内置组件和其使用的详细信息:uni-app官方文档

附录:「简历必备」前后端实战项目(推荐:⭐️⭐️⭐️⭐️⭐️)

Vue.js 和 Egg.js 开发企业级健康管理项目

带你从入门到实战全面掌握 uni-app

相关文章
|
5天前
|
人工智能 文字识别 小程序
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。
|
9天前
|
小程序 安全 JavaScript
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
34 1
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
|
12天前
|
存储 Android开发 数据安全/隐私保护
Thanox安卓系统增加工具下载,管理、阻止、限制后台每个APP运行情况
Thanox是一款Android系统管理工具,专注于权限、后台启动及运行管理。支持应用冻结、系统优化、UI自定义和模块管理,基于Xposed框架开发,安全可靠且开源免费,兼容Android 6.0及以上版本。
61 4
|
29天前
|
Java 数据安全/隐私保护 计算机视觉
银行转账虚拟生成器app,银行卡转账截图制作软件,java实现截图生成工具【仅供装逼娱乐用途】
本内容提供Java生成自定义图片的示例代码,涵盖基础图像创建、文本添加及保存功能,适合学习2D图形编程。包括教学示例图片生成、文本图层处理和数字水印技术实现方案。
|
1月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
29天前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
5天前
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
|
12天前
|
存储 移动开发 监控
App Trace功能实战:一键拉起、快速安装与免提写邀请码的应用实践
App Trace系统通过一键拉起、快速安装和免提写邀请码三大功能,显著提升用户转化率、安装成功率和邀请注册率。结合深度技术实现与优化,助力公司用户增长,成为移动端核心基础设施。
|
26天前
|
BI 开发工具 开发者
App全渠道统计方案:如何用一个工具整合所有获客渠道数据?
还在为地推、社群、广告等不同获客渠道的数据分散而烦恼吗?本文将教您如何用一个工具整合所有渠道数据,实现精准的渠道归因与效果分析。
46 0
|
2月前
|
搜索推荐 API UED
淘宝/天猫获得淘宝app商品详情原数据 API 返回值的应用
该API专注于商品信息整合与展示,提供基础信息抓取、多媒体内容整合等功能,助力实时同步商品数据,构建丰富的详情页。同时支持数据分析与市场洞察,包括销售趋势分析和竞品对比,优化库存与定价策略。此外,动态促销管理和个性化推荐系统可提升营销效果,而实时库存预警和评价数据可视化则显著增强用户体验,为用户决策提供透明依据,全面提升平台竞争力与用户满意度。

热门文章

最新文章