【知识】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>


相关文章
|
开发工具 数据安全/隐私保护 UED
Uniapp 微信登录流程解析
Uniapp 微信登录流程解析
456 0
|
C# 图形学
【unity小技巧】Unity音乐和音效管理器
【unity小技巧】Unity音乐和音效管理器
816 1
|
JSON Java 数据格式
java中json与list转换方法
java中json与list转换方法
1596 0
java中json与list转换方法
|
11月前
|
缓存 JavaScript 前端开发
vue2进阶篇:vue-router之嵌套(多级)路由
vue2进阶篇:vue-router之嵌套(多级)路由
343 3
|
12月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
Element UI【详解】el-scrollbar 滚动条组件 —— 监听滚动条的滚动,跟随页面一起滚动,获取滚动距离,隐藏水平滚动条等
Element UI【详解】el-scrollbar 滚动条组件 —— 监听滚动条的滚动,跟随页面一起滚动,获取滚动距离,隐藏水平滚动条等
1981 0
|
JavaScript Java 测试技术
基于springboot+vue.js的在线招投标系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的在线招投标系统附带文章和源代码设计说明文档ppt
153 0
uniapp中组件库的Checkbox 复选框的使用方法
uniapp中组件库的Checkbox 复选框的使用方法
|
前端开发 JavaScript
【uniapp】处理 promise 返回结果
【uniapp】处理 promise 返回结果
740 0
【uniapp】处理 promise 返回结果
QGS
|
Android开发
JavaFX场景入门(上)
JavaFX场景入门
QGS
275 0