uniapp中组件的基本使用和数据绑定

本文介绍了uni-app的基础组件使用,包括text、view、button和image组件,详细讲解了各组件的属性和用法,并提供了代码示例。同时,文章还涵盖了uni-app中的数据绑定,包括插值表达式、v-bind动态绑定和v-for循环,以及uni-app的样式单位rpx和样式使用规范。此外,还提到了如何在uni-app中使用scss或less。
组件的基本使用

uni-app提供了丰富的基础组件给开发者,开发者可以像搭积木一样,组合各种组件拼接称自己的应用

uni-app中的组件,就像 HTML 中的 divpspan 等标签的作用一样,用于搭建页面的基础结构

text文本组件的用法
001 - text 组件的属性
属性类型默认值必填说明
selectablebooleanfalse文本是否可选
spacestring.显示连续空格,可选参数:enspemspnbsp
decodebooleanfalse是否解码
  • text 组件相当于行内标签、在同一行显示
  • 除了文本节点以外的其他节点都无法长按选中
002 - 代码案例
<view>
  <!-- 长按文本是否可选 -->
  <text selectable='true'>来了老弟</text>
</view>

<view>
  <!-- 显示连续空格的方式 -->
  <view>
    <text space='ensp'>来了  老弟</text>
  </view>
  <view>
    <text space='emsp'>来了  老弟</text>
  </view>
  <view>
    <text space='nbsp'>来了  老弟</text>
  </view>
</view>

<view>
  <text>skyblue</text>
</view>

<view>
  <!-- 是否解码 -->
  <text decode='true'>&nbsp; &lt; &gt; &amp; &apos; &ensp; &emsp;</text>
</view>
view视图容器组件的用法

View 视图容器, 类似于 HTML 中的 div

001 - 组件的属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xH8VYTSW-1629612850764)(./images/2view.png)]

002 - 代码案例
<view class="box2" hover-class="box2_active">
  <view class='box1' hover-class='active' hover-stop-propagation :hover-start-time="2000" :hover-stay-time='2000'>
//冒号是一个表达式,不加的话里面的 2000 会被认为是一个字符串
  </view>
</view>
button按钮组件的用法
001 - 组件的属性
属性名类型默认值说明
sizeStringdefault按钮的大小
typeStringdefault按钮的样式类型
plainBooleanfalse按钮是否镂空,背景色透明
disabledBooleanfalse是否按钮
loadingBooleanfalse名称是否带 loading t图标
  • button 组件默认独占一行,设置 sizemini 时可以在一行显示多个
002 - 案例代码
<button size='mini' type='primary'>前端</button>

<button size='mini' type='default' disabled='true'>前端</button>

<button size='mini' type='warn' loading='true'>前端</button>
image组件的使用
image

图片。

属性名类型默认值说明平台差异说明
srcString图片资源地址
modeString‘scaleToFill’图片裁剪、缩放的模式

Tips

  • <image> 组件默认宽度 300px、高度 225px;
  • src 仅支持相对路径、绝对路径,支持 base64 码;
  • 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置 image{will-change: transform} ,可优化此问题。
uni-app中的样式
  • rpx 即响应式px,一种根据屏幕宽度自适应的动态单位。以750宽的屏幕为基准,750rpx恰好为屏幕宽度。屏幕变宽,rpx 实际显示效果会等比放大。

  • 使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束

  • 支持基本常用的选择器class、id、element等

  • uni-app 中不能使用 * 选择器。

  • page 相当于 body 节点

  • 定义在 App.vue 中的样式为全局样式,作用于每一个页面。在 pages 目录下 的 vue 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 App.vue 中相同的选择器。

  • uni-app 支持使用字体图标,使用方式与普通 web 项目相同,需要注意以下几点:

    • 字体文件小于 40kb,uni-app 会自动将其转化为 base64 格式;

    • 字体文件大于等于 40kb, 需开发者自己转换,否则使用将不生效;

    • 字体文件的引用路径推荐使用以 ~@ 开头的绝对路径。

       @font-face {
           font-family: test1-icon;
           src: url('~@/static/iconfont.ttf');
       }
      
  • 如何使用scss或者less

    • 点击工具–> 插件安装 --> 安装
uni-app中的数据绑定

在页面中需要定义数据,和我们之前的vue一摸一样,直接在data中定义数据即可

export default {
  data () {
    return {
      msg: 'hello-uni'
    }
  }
}
插值表达式的使用
  • 利用插值表达式渲染基本数据

    <view>{{msg}}</view>
    
  • 在插值表达式中使用三元运算

    <view>{{ flag ? '我是真的':'我是假的' }}</view>
    
  • 基本运算

    <view>{{1+1}}</view>
    
v-bind动态绑定属性

在data中定义了一张图片,我们希望把这张图片渲染到页面上

export default {
  data () {
    return {
      img: 'http://destiny001.gitee.io/image/monkey_02.jpg'
    }
  }
}

利用v-bind进行渲染

<image v-bind:src="img"></image>

还可以缩写成:

<image :src="img"></image>
v-for的使用

data中定以一个数组,最终将数组渲染到页面上

data () {
  return {
    arr: [
      { name: '刘能', age: 29 },
      { name: '赵四', age: 39 },
      { name: '宋小宝', age: 49 },
      { name: '小沈阳', age: 59 }
    ]
  }
}

利用v-for进行循环

<view v-for="(item,index) in arr" :key="index">序号:{{index}},名字:{{item.name}}---年龄:{{item.age}}</view>
//加key是为了防止就近复用
<think>好的,用户想知道如何在UniApp中实现checkbox的数据绑定。首先,我需要回忆一下UniApp的相关知识,特别是关于表单组件数据绑定的部分。记得UniApp是基于Vue.js的,所以Vue的响应式机制v-model指令应该适用。 首先,Checkbox组件UniApp中的使用方式可能原生HTMLVue有些不同。需要确认UniApp中checkbox的属性数据绑定方法。根据引用[3][4],用户可能遇到了checked属性无效的问题,而正确的做法是使用v-model来绑定数据。这说明在UniApp中,checkbox的数据绑定应该通过v-model实现,而不是直接使用checked属性。 接下来,要考虑单个checkbox多个checkbox的情况。单个checkbox通常绑定一个布尔值,而多个checkbox则可能绑定到一个数组,存储选中的值。例如,引用[3]中提到使用数组作为Checkbox的值,这说明多个checkbox需要绑定到数组。 然后,需要查找具体的示例。引用[1]中的示例三示例四分别展示了Vue使用对象数组作为RadioCheckbox的值,这可能与UniApp中的实现类似。不过UniApp可能有自己的组件标签,比如<checkbox-group><checkbox>,而不是原生的HTML标签。 另外,引用[2][4]提到了在uni-app中使用事件绑定数据同步,比如bindinputv-model的结合使用。这可能意味着在checkbox中,除了v-model,还可以使用@change事件来处理额外的逻辑。 需要确保给出的示例代码符合UniApp的语法,比如标签应该是<checkbox-group>包裹多个<checkbox>,每个checkbox的value属性对应选项的值,而v-model绑定到data中的数组或布尔值。同时,要注意在UniApp中,checkbox的选中状态由v-model绑定数据控制,而不是checked属性,这可能是一些用户遇到的问题,如引用[4]中提到的checked属性无效的情况。 最后,总结步骤:在data中定义绑定变量,使用v-model绑定到checkbox或checkbox-group,处理单个多个复选框的情况,可能还需要动态生成checkbox列表。同时,提醒用户常见问题,比如数据同步组件使用注意事项。</think>以下是在UniApp中实现Checkbox数据绑定的详细方法: ### 一、基础数据绑定原理 在UniApp中通过$v-model$指令实现双向数据绑定,其核心是: 1. 单个复选框绑定布尔值 2. 多个复选框绑定数组值 3. 依赖Vue响应式系统自动同步数据[^3] ### 二、具体实现方法 #### 1. 单个复选框绑定 ```html <checkbox v-model="isChecked">同意协议</checkbox> ``` ```javascript export default { data() { return { isChecked: false } } } ``` #### 2. 多选数组绑定 ```html <checkbox-group v-model="selectedHobbies"> <checkbox value="reading">阅读</checkbox> <checkbox value="music">音乐</checkbox> <checkbox value="sports">运动</checkbox> </checkbox-group> ``` ```javascript data() { return { selectedHobbies: [] } } ``` #### 3. 对象值绑定(需v3.1.0+) ```html <checkbox-group v-model="selectedOptions"> <checkbox :value="{id:1,name:'选项A'}">A</checkbox> <checkbox :value="{id:2,name:'选项B'}">B</checkbox> </checkbox-group> ``` ### 三、动态生成示例 ```html <checkbox-group v-model="selectedCities"> <checkbox v-for="(item,index) in cityList" :key="index" :value="item.value" >{{item.label}}</checkbox> </checkbox-group> ``` ### 四、注意事项 1. 必须使用`<checkbox-group>`包裹多个复选框 2. 通过`value`属性设置选中值 3. 禁用时使用`disabled`属性 4. 样式修改需通过CSS自定义[^4] ### 五、完整示例 ```html <template> <view> <checkbox-group v-model="formData.interests"> <label class="checkbox-item" v-for="item in interestList" :key="item"> <checkbox :value="item" /> {{item}} </label> </checkbox-group> <text>已选:{{formData.interests}}</text> </view> </template> <script> export default { data() { return { interestList: ['游泳', '登山', '摄影'], formData: { interests: [] } } } } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值