【知识】Uni-app-学习笔记 02

简介: 【知识】Uni-app-学习笔记 02

Uni-app-学习笔记 02


3、组件的基本使用


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


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


1) text文本组件的用法


text 组件的属性

image.png

  • text 组件相当于行内标签、在同一行显示
  • 除了文本节点以外的其他节点都无法长按选中


代码案例


<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>


2) view视图容器组件的用法


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


View组件的属性


image.png


代码案例


<view class="box2" hover-class="box2_active">
  <view class='box1' hover-class='active' hover-stop-propagation,
        hover-start-time="2000",hover-stay-time='2000'>
  </view>
</view>


3) button按钮组件的用法


button组件的属性


image.png


  • button 组件默认独占一行,设置 sizemini 时可以在一行显示多个。


案例代码


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


4)image组件的使用


image 图片


image.png


Tips


  • <image> 组件默认宽度 300px、高度 225px;
  • src 仅支持相对路径、绝对路径,支持 base64 码;
  • 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置 image{will-change: transform} ,可优化此问题。


4、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


5、 uni-app中的数据绑定


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

export default {
  data () {
    return {
      msg: 'hello-uniapp'
    }
  }
}


插值表达式的使用


  • 利用插值表达式渲染基本数据
<view>{{msg}}</view>
  • 在插值表达式中使用三元运算
<view>{{ flag ? '肯定值':'否定值' }}</view>
  • 基本运算
<view>{{1+1}}</view>

v-bind动态绑定属性

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

export default {
  data () {
    return {
      img: 'http://sunmiong.jpg'
    }
  }
}

利用v-bind进行渲染

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

还可以缩写成:

<image :src="img"></image>

v-for的使用

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

data () {
  return {
    arr: [
      { name: 'sunming', age: 18 },
      { name: '孙不坚', age: 18 }
    ]
  }
}

利用v-for进行循环

<view v-for="(item,i) in arr" :key="i">名字:{{item.name}}---年龄:{{item.age}}</view>
  • 在其他组件中导入该组件并注册
import login from "@/components/test.vue"
  • 注册组件
components: {test}
  • 使用组件
<test></test>


组件的生命周期函数


详见Vue-API文档


image.png


2、组件的通讯


父组件给子组件传值


通过props来接受外界传递到组件内部的值

<template>
  <view>
    这是一个自定义组件 {{msg}}
  </view>
</template>
<script>
  export default {
    props: ['msg']
  }
</script>
<style>
</style>

其他组件在使用test组件的时候传递值

<template>
  <view>
    <test :msg="msg"></test>
  </view>
</template>
<script>
  import test from "@/components/test/test.vue"
  export default {
    data () {
      return {
        msg: 'hello'
      }
    },
    components: {test}
  }
</script>


子组件给父组件传值


通过$emit触发事件进行传递参数

<template>
  <view>
    这是一个自定义组件 {{msg}}
    <button type="primary" @click="sendMsg">给父组件传值</button>
  </view>
</template>
<script>
  export default {
    data () {
      return {
        status: '打篮球'
      }
    },
    props: {
      msg: {
        type: String,
        value: ''
      }
    },
    methods: {
      sendMsg () {
        this.$emit('myEvent',this.status)
      }
    }
  }
</script>

父组件定义自定义事件并接收参数

<template>
  <view>
    <test :msg="msg" @myEvent="getMsg"></test>
  </view>
</template>
<script>
  import test from "@/components/test/test.vue"
  export default {
    data () {
      return {
        msg: 'hello'
      }
    },
    methods: {
      getMsg (res) {
        console.log(res)
      }
    },
    components: {test}
  }
</script>


相关文章
|
2月前
|
JavaScript Android开发 Swift
uni-app-x
uni-app-x
149 0
|
7月前
|
小程序
小程序-uni-app:hbuildx uni-app 安装 uni-icons 及使用
小程序-uni-app:hbuildx uni-app 安装 uni-icons 及使用
144 0
|
1月前
uni-app 175app端兼容处理(二)
uni-app 175app端兼容处理(二)
17 1
|
1月前
|
JavaScript
uni-app 174app端兼容处理(一)
uni-app 174app端兼容处理(一)
16 2
|
8月前
|
开发框架 移动开发 JavaScript
初识uni-app
uni-app是由DCloud公司研发的一款基于Vue.js的开源跨平台应用开发框架。使用uni-app,开发者只需编写一次代码,就可以同时构建出iOS、Android、H5、小程序(微信/支付宝/百度/字节跳动/快手)等多个平台的应用。uni-app是一款强大的跨平台开发框架,适用于多种场景。通过本文的介绍,希望您对uni-app有了初步的了解,并能够开始尝试使用uni-app开发您的项目。更多关于uni-app的详细信息,请访问官方文档。希望大家多多交流!共同进步。
93 0
|
9月前
|
开发框架 JavaScript Android开发
|
9月前
|
存储 缓存 数据安全/隐私保护
【uni-app】使用uni-app实现简单的登录注册功能
前言 大家好,今天和大家分享一下如何在uni-app中实现简单的登录注册功能。 首先你需要掌握一下知识点:
|
存储 缓存 JavaScript
【知识】Uni-app-学习笔记 05
【知识】Uni-app-学习笔记 05
180 0
【知识】Uni-app-学习笔记 05
|
JSON 移动开发 小程序
【知识】Uni-app-学习笔记 04
【知识】Uni-app-学习笔记 04
347 0
【知识】Uni-app-学习笔记 04
|
JavaScript API
【知识】Uni-app-学习笔记 03
【知识】Uni-app-学习笔记 03
152 0
【知识】Uni-app-学习笔记 03