解决方案

uniapp教程|vue h5转换uni-app指南(vue转uni、h5转uni)

作者:仙宝云 | 发布时间:2021-06-28 16:46:06 | 阅读:732

如果你已经有了一个基于vue开发的H5站点,惦念转换为uni-app

首先留神2个前提:

  • 你的web站是适合手机屏幕的;
  • 你的H5代码是全后端别离的,uni-app只处理前端代码

一切从新建一个uni-app项目开端然后依次进行

文件处理

1.把之前的vue web项目的前端代码copy到新项目下

2.如果之前的文件后缀名是.html,需要改为.vue,并留意遵照vue单文件组件SFC标准,比如必须一级根节点为template、script、style,template节点下必须且只能有一个根view节点,所有内容写在这个根view节点下

3.处理页面路由

uni-app默认是小程序的路由方法,在pages.json里管理页面如果你利用vue rooter的话,一种是改造为pages.json方法,另一种是运用三方插件,比如vue rooter for uni-app

4.静态文件(如图片)挪到static目次

uni-app工程目次下有个static目次,用于寄存静态文件,这个目次不编译,直接整体copy到发行代码里的
如果你盼望自定义静态资源目次,可以在vue.config.js中自定义

标签代码处理

1.雷同功效的组件自动转换

uni-app的标签组件与小程序雷同,比如<div>变成了<view>,<span>变成了<text>
但uni-app的编译器已经自动处理了这局部转换,如果源码中写了但是自动转换的组件,在编译到非H5端常常见面被自动转换(再编译回到H5端经常div还是div)

  • div 改变成 view
  • span、font 改成成 text
  • a 改变成 navigator
  • img 改成成 image
  • select 改动成 picker
  • iframe 改动成 web-view
  • ul、li没有了,都用view替代

2.区域滚动应用scroll-view,不再利用div的区域滚动处理方法

3.左右、上下滑动切换,有特地的swiper组件,不要利用div模拟

4.input的search,原来的type没用了,改动成confirmtype

5.audio组件不再推举应用,改成成api方法,背景音频api文档

6.之前的v-html,可以在H5端和App端(需要v3编译器)应用,不能在小程序中运用如需要在小程序应用,恳求利用rich-text组件或uparse扩大插件。

js代码处理

uni-app的非H5端,不管是App还是各种小程序,都不支撑window、navigator、document等web专用对象

uni-app的API与小程序保持一致,需要处理这些不同的API写法

1.处理window api

  • ajax 改变成 uni.request(插件市场也有适配uni-app的axios、flyio等封装拦截器)
  • cookie、session.storage 没有了,改用 uni.storage 吧;local.storage 也改成成 uni.storage另外插件市场有一个垫片mp-storage,但是应用之前的代码,兼容运转在uni-app上,
  • alert,confirm 改动成 uni.showmodel
  • window的resize 改成为了 uni.onWindowResize

2.处理navigator api

  • geolocation 的定位方法改为 uni.getLocation
  • useragent的设备api没有了,改用uni.getSystemInfo

3.处理dom api

  • 如果应用规范vue的数据绑定,是不需要操作dom来修改界面内容的如果没有利用vue数据绑定,仍然混写了jquery等dom操作,需要改为纯粹数据绑定
  • 有时获得dom并不是为了修改显示内容,而是为了获得元素的长余裕尺寸来做布局此时uni-app提供了同小程序的另一种API,uni.createSelectorQuery

4.其他js api

web中还有canvas、video、audio、websocket、webgl、webbluetooth、webnfc,这些在uni-app中都有特地的API

5.生命周期

uni-app增补了一批类小程序的声明周期,包罗App的启动、页面的加载,详见https://uniapp.dcloud.io/collocation/frame/lifetime
vue h5一般在created或者mounted中恳求数据,而在uni-app的页面中,利用onLoad或者onShow中恳求数据(组件仍然是created或者mounted)

6.少量不常用的vue语法在非h5端仍不支撑,data必须以return的方法编写

留神:如果你利用了一些三方ui框架、js库,其中援用了包罗一些利用了dom、window、navigator的三方库,除非你只做H5端,否则需要改换。去uni-app的插件市场寻觅替代品如果找不到对应库,必须应用for web的库,在App端可以运用renderjs来引入这些for web的库

css代码处理

uni-app公布到App(非nvue)、小程序不时,显示页面仍然由webview渲染,css大部分是撑持的但需要留神

  • 不撑持 *选择器
  • 没有body元素选择器,改用page元素选择器(编译到非H5不时,编译器会见自动处理所以不变动也行)
  • div等元素选择器改为view、span和font改为text、a改为navigator、img改为image…(编译到非H5常常,编译器见面自动处理所以不改成也行)
  • 不同端的浏览器兼容性仍然存在,幸免利用太新的css语法,否则公布为App经常,Android低端机(Android 4.4、5.x),会晤有样式错误当然在App端也可以援用x5浏览器内核来抹平浏览器差别

本文来源于uni-app官网本文仅供应大家学习,如有侵权及时沟通删除!


<仙宝云(www.szztz.com)是国内著名商城体系及商城网站建设提供商,为企业级商家提供零售商城、B2B2C多用户商城系统、仙宝云商城体系、微信分销体系、小程序商城、商城源码等多端商城网站建设解决方案>

申明:本网站局部文章和图片起源网络编辑,如有侵权及时沟通删除,仙宝商城原创文章,转载恳求注明根源。

智慧商业服务商仙宝云欢迎您!

请加微信: 18962171986 (宋经理)

在线咨询