微信小程序开发之原生小程序开发和uniapp开发的区别,两种开发方式语法上的区别

目前小程序开发有两种形式,分别是原生小程序开发和使用uniapp开发,
uniapp和小程序原生开发都有各自的优缺点,开发者可以根据具体需求选择合适的开发方式。

一、两者区别如下:
  1. 编程语言:uniapp使用Vue语法编写应用程序,而小程序原生开发使用微信小程序提供的API和组件进行开发
  2. 开发工具:uniapp可以使用HbuilderX、VSCode等多种开发工具进行开发,而小程序原生开发需要使用微信小程序开发工具进行开发
  3. 平台适配性:uniapp可以生成多个平台的应用程序,包括小程序、H5、App等,而小程序原生开发只能生成小程序
  4. 开发成本:相对于小程序原生开发,uniapp开发成本较低,因为开发人员可以重复使用相同的代码,只需要根据不同的平台进行适配即可
  5. 性能表现:相对于小程序原生开发,uniapp的性能表现略差,因为它需要使用Vue框架,而小程序原生开发则是使用原生JavaScript进行开发
二、原生小程序开发
  1. 原生开发使用微信开发者工具开发,可以从官网下载安装,https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

  2. 安装完成后看到登录页,使用微信扫码登录,开发者工具将使用这个微信账号的信息进行小程序的开发和调试

  3. 新建项目,需要一个小程序的 AppID,登录的微信号需要是该 AppID 的开发者,可以在微信公众平台注册小程序,注册成功登录后在首页的基本信息里面可以看到该小程序的APPID;也可以先选择使用测试号。 需要选择一个空目录,或者选择的非空目录下存在 app.json 或者 project.config.json。当选择空目录时,可以选择是否在该目录下生成一个简单的项目。在这里插入图片描述

  4. 根据自己的需要创建小程序,可以选择官方提供的模板作为小程序的基本项目代码,创建完的项目结构如下图在这里插入图片描述

  5. 如果一开始使用测试号,后面申请了自己的小程序,可以在project.config.json文件里面修改appid,如果使用的是测试号新建打开项目,可以看到上传按钮是置灰的,如果改成已申请的小程序的appid,上传按钮就会变成可点击在这里插入图片描述

  6. 使用已申请的小程序appid之后,点击右上角上传按钮提交版本代码,小程序管理者在微信公众平台登录该小程序,进入版本管理,可以看到刚刚提交开发版本,设为体验版本可以扫描二维码查看,其他人如需体验,需在成员管理里面新增体验成员后方可查看在这里插入图片描述

  7. 发布上线前需点击提交审核,微信官方审核完成后,可以根据自己的时间点击发布,即小程序上线。

三、uniapp开发小程序

1、uniapp推荐使用HbuilderX作为开发工具,可以从官网下载安装,https://www.dcloud.io/hbuilderx.html
2、安装完成打开,点击工具栏里的文件 -> 新建 -> 项目在这里插入图片描述

3、选择uni-app类型,输入工程名,选择模板,点击创建,即可成功创建。uni-app自带的模板有 默认的空项目模板、Hello uni-app 官方组件和API示例,可以根据自己的需要选择创建项目在这里插入图片描述

4、也可以使用cli安装,会提示选择项目模板,如下图

npm install -g @vue/cli  //全局安装vue-cli
vue create -p dcloudio/uni-preset-vue my-project(项目名)   //创建项目

在这里插入图片描述
创建成功的项目目录在这里插入图片描述
5、进入uniapp项目,点击工具栏的运行,可以运行到浏览器、终端和小程序模拟器等地方,本地开发小程序的话,就是运行到微信开发者工具,即可在微信开发者工具里面体验uni-app。如果是第一次使用,需要先配置小程序ide的相关路径,才能运行成功。如下图,需在输入框输入微信开发者工具的安装路径。微信开发者工具需要开启服务端口,在微信工具的设置->安全中。
在这里插入图片描述
运行成功如下图,会自动打开微信开发者工具运行项目
在这里插入图片描述

6、可以在hbuilderX中点击发行按钮,勾选自动上传到微信平台,如下图,也可以和原生的一样,运行打开微信开发者工具之后,点击上传按钮上传至微信公众平台
在这里插入图片描述
7、之后按照 “提交审核” => “发布” 小程序标准流程,逐步操作即可。

四、比较原生开发小程序与使用uniapp开发小程序语法上的区别

1、页面布局模板

微信小程序:(wxml可以多个并列根标签)
<view></view>
<view></view>
​
uniapp:(模板只有一个根标签)
<template><view></view>
</template>

2、class写法不同

微信小程序:
<view class="common {{current === index ? 'active' : ''}}"></view>uniapp:
<view class="common" :class="{active:current === index}"></view>

3、API调用的差别(API基本相同,只是原生使用wx.调用,uniapp使用uni.调用)

微信小程序:wx.requestPayment、wx.request、wx.showModal、wx.showToast、wx.showLoading、wx.chooseImage、wx.switchTab、wx.navigateTo、wx.setStorageSync等等
​
uniapp:uni.requestPayment、uni.request,uni.showModal、uni.showToast、uni.showLoading、uni.chooseImage、uni.switchTab、uni.navigateTo、uni.setStorageSync等等
小程序的api在uni-app中只需要把wx替换成uni即可使用。

4、点击事件写法不同,传参方式不同,接收参数方式不同
微信小程序:

<view id="tapTest"  bindtap="tapName" data-id="id"> Click me! </view>
tapName(e){this.setData({currentId:e.currentTarget.dataset.id})
}uniapp:
<view @click="clickEvent(id)" ></view>
clickEvent(id){this.currentId = id
}

5、input的value值绑定写法不同

微信小程序:
<input value="{{sex}}" bindinput="inputChange"></input>
inputChange(e){console.log(e.detail.value)
}uniapp:
<input v-model="sex"></input>

6、for循环写法不同

微信小程序:
<view wx:for="{{currentList}}" wx:for-index="s_index" wx:for-item="s_item" wx:key="index"></view>uniapp:
<view v-for="(s_item,s_index) in currentList" :key="index"></view>

7、if判断写法不同

微信小程序:
<view wx:if="{{isShow}}"></view>uniapp:
<view v-if="isShow"></view>

8、阻止冒泡写法不同

微信小程序:
<view catchtap="clickTab">按钮</view>uniapp:
<view @click.stop="clickTab">按钮</view>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255446.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内测分发平台支持应用的异地容灾的重要性

大家好&#xff0c;我是咕噜-凯撒&#xff0c;随着网络社会的发展&#xff0c;人们对于应用程序的依赖程度越来越高。无论是企业用户还是个人用户&#xff0c;都希望能够随时随地访问到需要使用的应用。所以对于内测分发平台来说保证应用的连续性和可靠性是非常的关键。内侧分发…

惠普台式机如何关闭UEFI

惠普台式机如何关闭UEFI 1、开机一直按按ESC&#xff0c;出现以下界面后&#xff0c;再按F10进入BIOS。 2.选择安全–>安全引导配置–>按F10接受 3.把旧支持 启用&#xff0c;安全引导 禁用 按F10接受 4.保存并退出更改 5.重启后看一下引导顺序&#xff0c;如果旧引导源已…

[MySQL] MySQL中的内置函数

本篇文章主要是对MySQL中常见的内置函数进行了详细解释。例如有日期类函数、字符串类函数、数学类函数等等。希望本篇文章会对你有所帮助。 文章目录 一、日期类函数 1、1 使用详解 1、2 实例演示 二、字符串函数 2、1 使用详解 2、2 实例演示 三、数学函数 四、其他函数 &…

Java 实现TCP一对一聊天,UDP协议实现群聊

用TCP编程实现一对一式聊天&#xff0c;并用多线程解决了处于同一线程中的问题。 客户端代码&#xff1a;mport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.ut…

python深浅拷贝

【 一 】Python 深拷贝和浅拷贝概念理解 个人见解&#xff1a; 浅拷贝&#xff0c;指的是重新分配一块内存&#xff0c;创建一个新的对象&#xff0c;但里面的元素是原对象中各个子对象的引用。 深拷贝&#xff0c;是指重新分配一块内存&#xff0c;创建一个新的对象&…

Axure动态面板控制

首先创建一个项目&#xff0c;拖拽几个矩形喝一个动态面板 然后双击动态面板添加状态state1,state2,state3 然后分别在state1,state2,state3编辑导航对应的内容。 接下来就是添加交互事件&#xff0c;将不同导航对应不同的state. 点击“交互”->鼠标点击->进入交互编辑…

数组常用方法

1、filter 筛选 筛选数组中带有某个id的对象 let list[{id:1,name:111},{id:2,name:222},{id:3,name:333},]; let alist.filter((item)>{return item.id1 }); console.log(a)2、findIndex var idx list.findIndex((item) > {return item 2;});返回的idx是该元素在数组…

Vellum —— Vellum Solver

目录 Solver Collision Forces Advanced Secondary Constraint Pass Multi-Pass Solve Motion Sleeping Grain Collisions Fluids Minimal Solver Vellum Solver SOP是DOP的封装&#xff0c;以简化vellum的解算&#xff1b;第一个端口是geometry&#xff0c;第二个…

软件系统应用开发安全指南

2.1.应用系统架构安全设计要求 2.2.应用系统软件功能安全设计要求 2.3.应用系统存储安全设计要求 2.4.应用系统通讯安全设计要求 2.5.应用系统数据库安全设计要求 2.6.应用系统数据安全设计要求 全资料获取进主页。

Java多线程:代码不只是在‘Hello World‘

Java线程好书推荐 概述01 多线程对于Java的意义02 为什么Java工程师必须掌握多线程03 Java多线程使用方式04 如何学好Java多线程写在末尾&#xff1a; 主页传送门&#xff1a;&#x1f4c0; 传送 概述 摘要&#xff1a;互联网的每一个角落&#xff0c;无论是大型电商平台的秒杀…

汽车电子 -- CAN文件格式ASC

Vector提供了两种记录数据格式的格式规范&#xff1a;BLF和ASC。 先讲讲ASC。 参看&#xff1a;图文详解CAN Log文件 - ASC文件格式 一、ASC文件格式 在Vector提供的 CAN_LOG_TRIGGER_ASC_Format.pdf 提取码&#xff1a;ltjv 文件中&#xff0c;规定了CANoe/CANalyzer ASC记…

亚马逊,速卖通,沃尔玛构建稳定高成功率的测评补单环境系统:关键步骤解析

亚马逊对于跨境电商行业来说并不陌生&#xff0c;现在越来越多的人想进入亚马逊这个跨境电商平 台。因此随着越来越多的商家进入这个市场&#xff0c;亚马逊的竞争力也在不断上升。在亚马逊的平台&#xff0c;Review 直接影响着亚马逊对卖家账号进行评定的各项因素&#xff0c;…