当前位置:首页 > uni-app

uniapp 数据渲染

2026-03-05 03:57:25uni-app

数据渲染的基本方法

在uniapp中,数据渲染通常通过模板语法和数据绑定实现。最基础的方式是在页面或组件的<template>部分使用双大括号{{}}插入数据。

<template>
  <view>
    <text>{{ message }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello uniapp'
    }
  }
}
</script>

列表渲染

对于数组类型数据的渲染,可以使用v-for指令。该指令可以遍历数组或对象,生成重复的DOM结构。

<template>
  <view>
    <view v-for="(item, index) in list" :key="index">
      {{ item.name }}
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { name: 'Apple' },
        { name: 'Banana' },
        { name: 'Orange' }
      ]
    }
  }
}
</script>

条件渲染

通过v-ifv-else-ifv-else指令可以实现条件渲染。这些指令会根据表达式的真假值来添加或移除DOM元素。

uniapp 数据渲染

<template>
  <view>
    <view v-if="show">显示内容</view>
    <view v-else>隐藏内容</view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      show: true
    }
  }
}
</script>

样式绑定

动态绑定样式可以通过:style:class实现。这种方式允许根据数据变化动态改变元素的样式。

<template>
  <view :style="{ color: activeColor, fontSize: fontSize + 'px' }">
    动态样式
  </view>
</template>

<script>
export default {
  data() {
    return {
      activeColor: 'red',
      fontSize: 14
    }
  }
}
</script>

表单输入绑定

使用v-model指令可以实现表单输入和应用状态之间的双向绑定。

uniapp 数据渲染

<template>
  <view>
    <input v-model="inputValue" placeholder="请输入内容" />
    <text>输入的内容是:{{ inputValue }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    }
  }
}
</script>

性能优化技巧

对于大型列表的渲染,可以考虑使用虚拟列表技术。uniapp提供了<unicloud-db>组件和<recycle-list>组件来优化长列表性能。

<template>
  <recycle-list>
    <cell v-for="(item, index) in longList" :key="index">
      {{ item.content }}
    </cell>
  </recycle-list>
</template>

数据更新机制

在uniapp中,直接修改数组或对象可能不会触发视图更新。需要使用this.$set方法或返回新数组/对象的方式来确保响应式更新。

// 正确方式
this.$set(this.list, 0, {name: 'New Item'})

// 或者
this.list = [...this.list, {name: 'New Item'}]

异步数据渲染

处理异步数据时,可以在生命周期钩子或方法中获取数据后赋值给响应式变量。

<script>
export default {
  data() {
    return {
      asyncData: null
    }
  },
  async created() {
    const res = await uni.request({url: 'api/data'})
    this.asyncData = res.data
  }
}
</script>

标签: 数据uniapp
分享给朋友:

相关文章

uniapp隐藏滚动条

uniapp隐藏滚动条

在UniApp中隐藏滚动条可以通过以下几种方法实现,具体根据使用场景选择: 全局样式设置(APP/H5) 通过修改全局CSS样式隐藏滚动条,适用于所有页面: ::-webkit-scrollbar…

uniapp部署到服务器

uniapp部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp旋转横屏

uniapp旋转横屏

实现横屏模式的方法 在UniApp中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中,找到"…

uniapp如何赋值

uniapp如何赋值

uniapp 赋值方法 在 uniapp 中,赋值操作可以通过多种方式实现,具体取决于数据类型和场景。 数据绑定赋值 在模板中使用 {{}} 进行数据绑定,通过修改 data 中的值实现动态更新。…

uniapp特性

uniapp特性

uniapp的核心特性 跨平台开发 uniapp支持一套代码编译到多个平台,包括iOS、Android、H5、微信小程序、支付宝小程序、百度小程序、字节跳动小程序等。开发者无需为不同平台单独编写代码。…

重构uniapp

重构uniapp

重构 Uniapp 项目的关键方法 代码结构优化 将页面、组件、静态资源按功能模块划分,避免全部堆放在根目录。建议采用以下结构: src/ ├── components/ // 通用组件…