uni-app基础知识

这篇具有很好参考价值的文章主要介绍了uni-app基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uni-app

uni-app是什么

uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。

解释

uni-app是由dcloud公司开发的,多端融合框架,一次开发,多端运行,它的竞品:apiCloud,appCan,Codova,技术架构:vue的语法+小程序的api

端(Hybrid混合开发)

  • App端:HTML+、nvue(原生view)、native.js(js原生沟通的桥梁)、weex、内置的ios/安卓的模块使用
  • H5端:h5专用api
  • 各种小程序(微信为主)

准备工具

  • Hbuildx(开发与编译工具)
  • 微信小程序开发者工具(微信小程序预览测试)
  • 安卓模拟器/真机(运行app)

界面

  • 页面框架介绍
    uni-app基础知识
  • 项目目录文件介绍
    uni-app基础知识

使用uni-app

新建项目

文件—>新建项目---->输入项目名称----->新建
uni-app基础知识

运行到多端

H5

运行------>运行到内置浏览器
uni-app基础知识

小程序

  • 设置小程序的端口:设置----->安全设置
    uni-app基础知识
  • Hbuilderx配置微信开发者工具的地址
    uni-app基础知识
  • 配置微信小程序的id
    uni-app基础知识
    uni-app基础知识
  • 运行到微信小程序:
    uni-app基础知识

APP

配置模拟器的端口

uni-app基础知识
uni-app基础知识

常见的模拟器的端口
  • 夜神模拟器端口号:62001
  • 海马模拟器端口号:26944
  • 逍遥模拟器端口号:21503
  • MuMu模拟器端口号:7555
  • 天天模拟器端口号:6555
打开运行到模拟器

uni-app基础知识

注意项

  • hbuilder可能需要下载对应的插件
  • 运行到安卓模拟器,有视图差距
  • 运行可能需要一定的时间

vue语法

uni-app的使用遵循vue的基本语法,这里简单回顾一下

文本渲染

  • {{表达式}}
  • v-text=“表达式”
  • 表达式
    • 可以是简单的js运算:{{2+3}}
    • js方法调用:{{title.length}}、{{title.split(“”).reverse().join(“”)}}
    • 三目运算符:{{title.length>10?“是的”:“并不是”}}
  • v-html富文本
		<view>
			<view class="title">文本渲染</view>
			<view>{{title}}</view>
			<view v-text="title"></view>
			<view>{{2+3}}</view>
			<view>{{title.length}}</view>
			<view>{{title.split("").reverse().join("")}}</view>
			<view>{{title.length>10?"是的":"并不是"}}</view>
			<view v-html="str"></view>
		</view>

条件渲染

  • v-if
  • v-else-if
  • v-else
  • v-show
		<view>
			<view class="title">条件渲染</view>
			<view v-if="isLog">欢迎您,亲爱的xxx</view>
			<view v-else>请先登录</view>
			
			<view v-show="isLog">欢迎欢迎</view>
			<view v-show="!isLog">请先登录</view>
			
			<view v-if="score>90">🚗奖励一辆小汽车</view>
			<view v-else-if="score>80">💻奖励一台电脑</view>
			<view v-else-if="score>70">🛵奖励一辆电瓶车</view>
			<view v-else-if="score>60">🛴奖励一辆滑板车</view>
			<view v-else>打一顿</view>
		</view>

列表选项(保障兄弟元素间的key值时唯一的)

  • 字符串,数字,列表,对象都可以遍历
  • < view v-for=“(item,index) in list” :key=“index”>{{item}}</ view>
		<view>
			<view class="title">列表渲染</view>
			<view>-----遍历列表-----</view>
			<view v-for="(item,index) in list" :key="index+1">{{item}}</view>
			<view>-----遍历对象-----</view>
			<view v-for="(value,key) in obj" v-bind:key="key">{{value}}</view>
			<view>-----遍历数字-----</view>
			<view v-for="item in 5">{{item}}</view>
			<view>-----遍历字符串-----</view>
			<view v-for="(s,i) in title" :key="i+2">{{s}}</view>
		</view>

属性绑定

  • < button type=“primary” :disabled=“isLog” @click=“isLog=!isLog”>按钮</ button>
		<view>
			<view class="title">属性渲染</view>
			<button type="primary" :disabled="isLog" @click="isLog=!isLog">按钮</button>
			<button type="warn" :disabled="!isLog" @click="isLog=!isLog">按钮</button>
		</view>

表单绑定

  • :value=“单向绑定”
  • v-model双向绑定
  • @change=“num=$ event.detail.value”(事件的值是$event.detail.value)
		<view>
			<view class="title">表单绑定</view>
			<view>{{title}}---{{time}}---{{num}}</view>
			
			<view>-----选择-----</view>
			<picker mode="time" :value="time" start="09:01" end="21:01" @change="time=$event.detail.value">
				<view class="uni-input">{{time}}</view>
			</picker>
			
			<view>-----输入-----</view>
			<!-- 通过:value属性实现对表单单向绑定 -->
			<!-- 通过v-model对表单事项双向绑定 -->
			<!-- input默认没有样式 -->
			<input type="text" placeholder="请输入..." :value="title" v-model="title">
			
			<view>-----滑块-----</view>
			<slider :value="num" @change="num=$event.detail.value" step="5" />
		</view>

事件绑定

  • 事件的绑定< button v-on:click=“事件响应”></ button>
  • 简写绑定:<button@:click=“事件响应”></ button>
  • 事件行内处理:<button @click=“num++”></ button>
  • 事件响应函数(函数在methods里定义):<button @click=“say()” type=“primary” size=“mini”>响应函数</ button>
  • 事件响应函数-传参<button @click=“say(‘你好,亲爱的祖国’)” type=“warn” size=“mini”>响应函数-传参</ button>
  • 不写参数@click=“say”等同于@click=“say()”等同于@click=“say($event)”
  • $event是固定写法,代表事件对象
  • 事件对象($event/e)<button @click=“doit” type=“primary” size=“mini” :data-title=“title”>事件对象</ button>
    • function say(e){}
    • target目标对象
    • dataset组件传参
		<view>
			<view class="title">事件绑定</view>
			<button v-on:click="num++" type="primary" size="mini">{{num}}绑定事件</button>
			<button @click="num++" type="warn" size="mini">{{num}}绑定事件-简写</button>
			<button @click="say()" type="primary" size="mini">响应函数</button>
			<button @click="say('你好,亲爱的祖国')" type="warn" size="mini">响应函数-传参</button>
			<button @click="doit" type="primary" size="mini" :data-title="title">事件对象</button>
		</view>
export default {
		data() {
			return {
				time:"12:01",
				title: '你好,我是uni-app',
				num:1,
				str:"<strong>祖国繁荣昌盛</strong>,那是必须的",
				isLog:true,
				score:85,
				list:["vue","react","angular","jquery"],
				obj:{"小王":"javascript","小李":"html5","小赵":"css3"},
			}
		},
		onLoad() {

		},
		methods: {
			say(str="你好"){
				uni.showToast({//提示
					title:str
				})
			},
			doit(e){
				console.log(e);
				uni.showModal({//弹框
					title:e.target.dataset.title
				})
			}
		}
	}

vue选项

  • data数据
  • methods方法
  • computed计算
  • watch监听
  • derective指令
  • filter过滤

uni-app页面

  • 新建页面(同上)
  • 页面配置:pages.json
    • 默认页面的样式会应用全局样式,页面写了style样式,那么用的配置覆盖全局配置
    • pages页面----path页面路径

uni-app的生命周期

(同等级会优先执行小程序的生命周期,再执行vue的生命周期)

Vue的生命周期

  • 创建
    • beforeCreate
    • created(可以使用this,没有dom)
      作用:初始数据、注册监听事件、开启定时器、ajax请求
  • 挂载
    • beforeMount
    • mounted(可以操作dom节点)
      作用:操作dom,ajax请求
  • 更新
    • beforeUpdate
    • updated
  • 卸载
    • beforeDestroy
      作用:移除事件监听,移除停止定时器
    • destroyed

小程序的生命周期

  • onLoad
    1、能够获取页面的参数
    2、开启ajax,定时器,页面监听
    3、像vue的created
  • onShow(显示)
    播放媒体
  • onReady(准备)
    1、获取节点信息
    2、像vue的mounted
  • onHide(后台运行)
    停止播放媒体
  • onUnload(卸载)
    停止事件监听与定时器

小程序的全局方法

网址:https://uniapp.dcloud.net.cn/tutorial/page.html

  • 下拉刷新:onPullDownRefresh
  • 触底刷新:onReachBottom
  • 右上角分享:onShareAppMessage
  • 页面滚动:onPageScroll
  • 分享到朋友圈:onShareTimeline
    uni-app基础知识

app的全局方法

  • 安卓手机的返回键被点击:onBackPress
  • 导航栏按钮被点击:onNavigationBarButtonTap

组件

  • button:按钮(type类型(primary、default、warn)、size(mini)、disabled是否可用)
  • input:表单(value值、v-model双向绑定、placehoder、@change事件)
  • picker:时间(value值、mode模式、time时间、date日期(start、end)、region地区)
  • slider:滑块(value、max、min、@change=“num=$event.detail.value”)

uni-app的路由

路由组件

< navigator></ navigator>

  • url:跳转的地址
  • open-type:打开的类型
    1、navigate:跳转
    2、redirect:重定向(当前页面不留历史记录)
    3、navigateBack:返回
    4、relauch:重启
    5、switchTab:跳转底部栏

路由传参

  • 传递:url:path?name=xxx&age=18
  • 接收:onLoad(option){}option的值:{name:xxx,age:18}

路由api

  • 跳转:uni.navigateTo({url})
  • 重定向:uni.redirectTo({url})
  • 返回:uni.navigateBack({url})
  • 底部栏切换:uni.switchTab({url})
  • 重启:uni.reLaunch({url})

路由配置

tabBar
uni-app基础知识

"tabBar": {
		"color": "#999",
		"selectedColor": "#FF7984",
		// "midButton": {
		// 	"text": "123",
		// 	"iconPath": "static/logo.png"
		// },
		"list":[
			{
				"pagePath": "pages/index/index",
				"text": "首页",
				"iconPath": "static/sy.png",
				"selectedIconPath": "static/sy1.png"
			},
			{
				"pagePath": "pages/life/life",
				"text": "生命",
				"iconPath": "static/hs.png",
				"selectedIconPath": "static/hs1.png"
			},
			{
				"pagePath": "pages/options/options",
				"text": "选项",
				"iconPath": "static/kt.png",
				"selectedIconPath": "static/kt1.png"
			},
			{
				"pagePath": "pages/condition/condition",
				"text": "条件",
				"iconPath": "static/wd.png",
				"selectedIconPath": "static/wd1.png"
			}
		]
	}

获取当前页面(getApp)

  • 在App.vue定义globalData
  • 使用的页面更新获取app var app = getApp()
  • 获取globalData的值 onshow(){this.num = app.globalData.num}
  • 更新globalData的值 addNum(){app.globalData.num++}

获取页面栈(getCurrentPages())

  • var page = getCurrentPages();获取当前的页面栈,是一个数组(1-5)
  • uni.navigateBack({delta:page.length})
  • page[page.length-1]获取当前页面的信息(不要去修改)

uni-app的条件编译

  • 目的:不同的平台展示不同的特性与功能、

模板条件编译

格式

  • < !-- #ifdef H5 -->< !-- #endif -->
  • < !-- #ifdef MP -->< !-- #endif -->
  • < !-- #ifdef APP -->< !-- #endif -->
		<view>条件编译</view>
		<!-- #ifdef H5 -->
			<view>H5:下载APP获取优惠券</view>
		<!-- #endif -->
		<!-- #ifdef MP -->
			<view>wx:小程序优惠券50元</view>
		<!-- #endif -->
		<!-- #ifdef APP -->
			<view>app:app优惠券5元</view>
		<!-- #endif -->

条件

  • App(APP端)
  • H5(网页)
  • MP(小程序)MP-WEIXIN微信小程序

css条件编译

< view class=“active”>我是奇奇怪怪的一行文字</ view>

<view class="active">我是奇奇怪怪的一行文字</view>

uni-app基础知识

js条件编译

<button @click=“say()”>你好</ button>

<button @click="say()">你好</button>
			say(){
				// #ifdef APP
				uni.showModal({
					title:"你好App用户"
				})
				// #endif
				// #ifdef H5
				uni.showModal({
					title:"你好手机用户"
				})
				// #endif
				// #ifdef MP
				uni.showToast({
					title:"你好微信用户"
				})
				// #endif
			}

条件配置page.json

“titleNView”: false隐藏状态栏
		"style" :                                                                                    
		    {
		        "navigationBarTitleText": "条件编译",
		        "enablePullDownRefresh": false,
				"h5": {
					"titleNView": {
						"titleText": "我是H5"
					}
				},
				"app-plus": {
					// "titleNView": false
					"titleNView": {
						"titleText": "我是APP"
					}
				}
		    }

uni-app基础知识

页面条件配置

uni-app基础知识
uni-app基础知识文章来源地址https://www.toymoban.com/news/detail-487655.html

到了这里,关于uni-app基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序-uni-app:uni-app-base项目基础配置及使用/uni-app+vue3+ts+vite+vscode

    目前(20230605)uni-app最新版本(3.8.4.20230531) 一、官网文档 微信开放文档 uni-app官网 二、创建项目 项目目标:vue3+ts+vite+vscode 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板) npx degit dcloudio/uni-preset-vue#vite-ts uniapp-base ​ 本文创建成功 ​ 为了验

    2024年02月15日
    浏览(74)
  • uni-app基础详解(组件、弹窗、数据缓存、页面跳转)

    uni-app组件 scroll-view 回到顶部 swiper text 文本 属性 说明 selectable 是否选中 decode 解码 例如: lt; , gt; 等 space 是否显示空格 space的参数值 参数 说明 emsp 中文字符空格大小 ensp 中文字符空格一半大小 nbsp 根据字体设置的空格大小 button 按钮 input 输入框 属性名 类型 默认值 说明

    2024年01月18日
    浏览(38)
  • uni-app 经验分享,从入门到离职(二)—— tabBar 底部导航栏实战基础篇

    这篇文章的内容主题是关于小程序的 tabBar 底部导航栏的入门使用和实战技巧。通过上一篇文章的基础,我们继续对 uni-app 进行更深一步的了解和学习,以上一篇文章创建的项目为例子,我们在这个项目的基础上进行改动和学习小程序的 tabBar 内容。 本篇文章是我的 uni-app 专

    2024年02月11日
    浏览(44)
  • Linux 驱动开发基础知识——APP 怎么读取按键值(十二)

     个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导航: 妄北y系列专栏导航: C/C++的基

    2024年02月21日
    浏览(43)
  • 【uni-app系列】uni-app之App打包

    选择菜单项 “发行” - “原生App-云打包”: 输入相关信息: 第一次安装时会提示安装依赖: 提示打包校验信息,点击【继续打包】: 如果没有实名认证,提示如下信息: 可以通过修改 manifest.json 取消通讯录权限或进行实名认证处理,本文通过实名认证处理。 登录 DCloud

    2024年02月08日
    浏览(67)
  • 【uni-app】—3.新建一个uni-app项目

    这里需要登录,自行用邮箱注册登录,再下载安装插件,安装完成如下 api 用来封装数据接口 common 用来存放js、css等 components 用来存放公共可复用的vue组件 config 用来存放数据配置文件 mock 用来 存放模拟数据 pages 用来存放页面 static 存放静态资源文件 APP.vue 项目主应用文件

    2024年02月09日
    浏览(56)
  • uni-app--》uni-app的生命周期讲解

    🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。 👀引言         ⚓经过web前端的学习,相信大家对于前端开发有了一定深入的

    2023年04月18日
    浏览(43)
  • 【uni-app】uni-app实现聊天页面功能——功能篇(上)

    上一篇讲到了如何布局,这一篇将讲一下如何用uni-app实现小程序聊天页面的最主要的功能——发消息后页面滚动到最底部(参考过很多文章最后找到比较适合的方法)。 其他的功能(参考微信),之后的文章会讲述到具体实现方法 点击聊天框的时候,聊天框随键盘抬起且聊

    2024年02月11日
    浏览(52)
  • 【uni-app】uni-app实现聊天页面功能(小程序)——布局篇

    在工作中使用uni-app参与开发一个小程序,其中要写一个简单的聊天页面,虽然功能不多(只有一个发送文字的功能),但是其中的细节比较多,也踩过很多坑,特此记录下来。要实现的页面如图所示,该篇主要讲讲如何布局(参考了很多文章之后根据页面需求进行一个整合)

    2024年02月05日
    浏览(66)
  • 小程序-uni-app:hbuildx uni-app 安装 uni-icons 及使用

    一、官方文档找到uni-icons uni-app官网 二、下载插件 三、点击“打开HBuildX” 四、选择要安装的项目 五、勾选要安装的插件 六、安装后,项目插件目录 根目录uni_modules目录下增加uni-icons、uni-scss 七、引入组件,使用组件 八、经过测试,成功。 参考链接 http://lihuaxi.xjx100.cn/new

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包