当前位置: 首页 > wzjs >正文

揭阳网站建设解决方案天津南开做网站公司

揭阳网站建设解决方案,天津南开做网站公司,重庆最新新闻5条,北京软件外包公司名单目录相关 static文件 编译器会把static目录中的内容整体复制到最终编译包内, 非 static 目录下的文件(vue组件、js、css 等)只有被引用时,才会被打包编译。 css、less/scss 等资源不要放在 static 目录下,建议这些…

目录相关

static文件

编译器会把static目录中的内容整体复制到最终编译包内,

非 static 目录下的文件(vue组件、js、css 等)只有被引用时,才会被打包编译。

css、less/scss 等资源不要放在 static 目录下,建议这些公用的资源放在自建的 common 目录下。

注意控制static目录的大小,太大的static目录和太多文件,会造成App安装后第一次启动变慢。

manifest应用配置

配置微信小程序的appid等,以及打包时的一些配置。

components文件

局部组件引入

在根目录下建立components文件夹,在文件夹里创建局部组件,在对应的页面组件内引入即可

注意:components下是组件文件夹,组件文件夹的名称与组件名称一致

路由相关

添加路由

页面创建完成后,需要在pages.json文件内添加文件路径,否则将无法访问相应页面

路由传参

路由传递的参数要从uniapp中的页面生命周期函数-onload内获取,不能在组件生命周期onMounted内获取

<template><view class="">姓名:{{name}} - {{age}}<scroll-view scroll-y="true" ref="scroll"><view></view></scroll-view><navigator url="/pages/demo5/demo5">跳转demo5</navigator><view>----</view><view>计数:{{count}}</view><view>----</view><navigator open-type="reLaunch" url="/pages/demo4/demo4">demo4页面</navigator><view v-for="item in 50">{{item}}</view><view class="fixed" v-if="fixed">↑</view></view>
</template><script setup>
import {onBeforeMount, onMounted, ref, getCurrentInstance} from "vue"
import {onLoad,onReady,onShow,onHide,onUnload,onPageScroll} from "@dcloudio/uni-app"
const name = ref("张三")
const age = ref(18)
const scroll = ref(null)
const count = ref(0)
const fixed = ref(false);let time= setInterval(()=>{count.value++
},50)onLoad((e)=>{	console.log("onload函数");	console.log(e);name.value = e.nameage.value = e.age
})onShow(()=>{console.log("onShow函数");time= setInterval(()=>{count.value++},50)
})onHide(()=>{console.log("onHide函数");clearInterval(time)
})onReady((e)=>{	console.log("onReady函数");
})onBeforeMount(()=>{console.log("onBeforeMount函数");
})onMounted(()=>{console.log("onMounted函数");const instance = getCurrentInstance();// const query = instance.route.query;console.log("onMounted函数-query", instance);})onUnload(()=>{console.log("onUnload卸载页面");
})onPageScroll((e)=>{console.log(e.scrollTop);	fixed.value = e.scrollTop>200})</script><style lang="scss" scoped>
.fixed{width: 100px;height: 100px;background: orange;position: fixed;right:30px;bottom:30px;
}
</style>

CSS相关

rpx

rpx 即响应式 px,一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准,750rpx 恰好为屏幕宽度。屏幕变宽,rpx 实际显示效果会等比放大,但在 App(vue2 不含 nvue) 端和 H5(vue2) 端屏幕宽度达到 960px 时,默认将按照 375px 的屏幕宽度进行计算,具体配置参考:rpx 计算配置 。

UI在做设计稿时,宽度最好按750px像素做,这样,当UI设计稿的宽度是1px的时候,我们在写CSS样式时就用1rpx就好了,省去换算的问题。

底部安全区域css环境变量

避免底部区域遮挡相关功能

padding-bottom: env(safe-area-inset-bottom);

设置通用样式

不放在Static文件加内,是因为,Static文件内的文件会被打包进去,放在common下的文件,只有引入才会被打包进去,并将样式文件在App.vue文件内引入。

view,swiper,swiper-item{box-sizing: border-box;
}.pageBg{background: linear-gradient(to bottom,transparent,#fff 400rpx),linear-gradient(to right,#beecd8 20%,#F4E2D8);min-height: 80vh;
}.loadingLayout{padding:30rpx 0;
}.safe-area-inset-bottom{height: env(safe-area-inset-bottom);
}

定义颜色变量

uni.scss文件定义uni-app内置的常用样式变量,common下的文件下定义的自定义变量在此文件内引入就可以全局使用。

样式穿透

deep(){.uni-icons{color:$brand-theme-color !important;}
}

插件

unplugin-auto-import自动导入vue和uniapp模块

// 根目录下创建vite.config.js,并拷贝下面的代码
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import AutoImport from 'unplugin-auto-import/vite'export default defineConfig({plugins: [uni(),        // 自动导入配置AutoImport({imports:[// 预设'vue','uni-app'                ]})]    
})

使用官方扩展组件

注意:引入之后不好用的话,就重新编译,小程序必须重新编译。如果下载插件的时候出现合并提示框,点击合并即可。

<uni-icons type="arrow-up" size="26" color="#888"></uni-icons>

 

编译器(#ifdef)

编译器:将uni-app统一代码编译生成每个平台支持的特有代码;如在小程序平台,编译器将.vue文件拆分生成wxmlwxssjs等代码。

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台

参考文档:什么是编译器 | uni-app官网

在Html中的示例

<!-- ifdef MP 在小程序展示 -->
<!-- #ifdef MP -->
<button open-type="contact">联系客服</button>
<!-- #endif --><!-- ifndef MP 非小程序的情况下展示 -->
<!-- #ifndef MP 非小程序的情况下展示 -->
<button @click="clickContact">拨打电话</button>
<!-- #endif -->

在Script中的示例

	//点击下载const clickDownload = async () => {// #ifdef H5uni.showModal({content: "请长按保存壁纸",showCancel: false})// #endif}

获取系统信息

系统信息的概念 | uni-app官网

uni.getSystemInfoSync()获取系统信息,一般使用同步方法,系统内获取的信息,其单位都是px的。

状态栏高度

const SYSTEM_INFO = uni.getSystemInfoSync();export const getStatusBarHeight = ()=> SYSTEM_INFO.statusBarHeight || 15;

胶囊按钮(小程序才有)

getMenuButtonBoundingClientRect() | uni-app官网

uni.getMenuButtonBoundingClientRect();

标题高度

一般标题高度 = 标题栏距状态栏的距离 + 胶囊按钮的高度 + 胶囊按钮距内容区的高度

const SYSTEM_INFO = uni.getSystemInfoSync();// 状态栏高度
export const getStatusBarHeight = ()=> SYSTEM_INFO.statusBarHeight || 15;// 标题栏高度
export const getTitleBarHeight = ()=>{// 如果存在胶囊按钮if(uni.getMenuButtonBoundingClientRect){// 获取胶囊按钮高度以及距顶部的距离let {top, height} = uni.getMenuButtonBoundingClientRect();// 胶囊按钮高度 + 上下边距return height + (top - getStatusBarHeight()) * 2		}else{return 40;}
}

自定义标题栏时占位区高度

const SYSTEM_INFO = uni.getSystemInfoSync();// 状态栏高度
export const getStatusBarHeight = ()=> SYSTEM_INFO.statusBarHeight || 15;// 标题栏高度
export const getTitleBarHeight = ()=>{// 如果存在胶囊按钮if(uni.getMenuButtonBoundingClientRect){// 获取胶囊按钮高度以及距顶部的距离let {top, height} = uni.getMenuButtonBoundingClientRect();// 胶囊按钮高度 + 上下边距return height + (top - getStatusBarHeight()) * 2		}else{return 40;}
}// 自定义标题栏占位元素的高度 = 状态栏高度 + 标题栏高度
export const  getNavBarHeight = ()=> getStatusBarHeight() + getTitleBarHeight();

头条小程序的头部icon

相关API查看抖音小程序开发文档,uni-app中没有写。

const SYSTEM_INFO = uni.getSystemInfoSync();// 状态栏高度
export const getStatusBarHeight = ()=> SYSTEM_INFO.statusBarHeight || 15;// 标题栏高度
export const getTitleBarHeight = ()=>{// 如果存在胶囊按钮if(uni.getMenuButtonBoundingClientRect){// 获取胶囊按钮高度以及距顶部的距离let {top, height} = uni.getMenuButtonBoundingClientRect();// 胶囊按钮高度 + 上下边距return height + (top - getStatusBarHeight()) * 2		}else{return 40;}
}// 自定义标题栏占位元素的高度 = 状态栏高度 + 标题栏高度
export const  getNavBarHeight = ()=> getStatusBarHeight() + getTitleBarHeight();// 抖音小程序标题有一个icon
export const getLeftIconLeft = ()=> {// #ifdef MP-TOUTIAO// 下面这种语法是深度解构let {leftIcon: {left, width}}  = tt.getCustomButtonBoundingClientRect();return left + parseInt(width);// #endif// #ifndef MP-TOUTIAOreturn 0// #endif	
}

网络请求

uni.request

在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。详细内容请参考官方文档 uni.request(OBJECT) | uni-app官网

function getData() {uni.request({url: '/XXX/XXX',method: 'POST', // 默认是getdata: {name: '测试'},success: (res: any) => {// 将接口的返回结果都包在data中console.log(res.data)}})
}

使用Promise封装request


const BASE_URL = 'https://XXX.XXX.com/XXX/XXX';export function request(config = {}){	let {url,data = {},method = "GET",header = {}} = config;url = BASE_URL + url;header['access-key'] = "XXX";	header['token'] = 'XXX';return new Promise((resolve, reject)=>{		uni.request({url,data,method,header,success: res=>{if(res.data.errCode === 0){// 直接取接口的返回值,去除中间包的那一层dataresolve(res.data)}else if(res.data.errCode === 400){uni.showModal({title: "错误提示",content: res.data.errMsg,showCancel: false})reject(res.data)}else{uni.showToast({title: res.data.errMsg,icon: "none"})reject(res.data)}				},fail: err=>{reject(err)}})})
}

打包

web/H5

1、路径模式,如果有后端做Nginx转发,就可以选择history,没有就选hash模式

2、将打包后的东西放在根路径下,就用 ./ 就可以了,但是一般情况下,服务器中可能有多个文件,比如说后端文件、前端文件、管理系统的文件,一个服务器里可能存在多个包,所以大多数情况下,运行的基础路径都会指定一个基础路径。

3、打包流程

 

打包APP-安卓

一、相关配置

二、运行APP

遇到下面这个弹窗,有两种解决方式:

1、把安卓手机直接连在电脑上

2、下载模拟器,百度自行下载即可

三、打包

 四、版本更新

uniPush统一推送与App升级中心uni-upgrade-center系列uniapp进阶课,安卓apk打包及自定义基座_哔哩哔哩_bilibili

即时设计

1、打开即时设计,选在创建文件

2、把UI做好的图拖入文件中 ,在图上右键锁定,这样图片就不会随便移动

ctrl+鼠标滚轮可以放大缩小图片

3、通过切片功能来模拟量图工具


文章转载自:

http://SJcjFFCs.ywqsk.cn
http://yHM3O0h1.ywqsk.cn
http://4D2fBcKz.ywqsk.cn
http://03FEP5Ub.ywqsk.cn
http://C8eaAIGW.ywqsk.cn
http://y36wCon9.ywqsk.cn
http://ht3kCOwr.ywqsk.cn
http://SexgSQ8Y.ywqsk.cn
http://6RFVtruk.ywqsk.cn
http://E4Iqu4WR.ywqsk.cn
http://is6pkAQk.ywqsk.cn
http://dpeUgdoB.ywqsk.cn
http://w1uyyVbE.ywqsk.cn
http://nqD1rHkE.ywqsk.cn
http://KdRZ5CvI.ywqsk.cn
http://xgkvKLMo.ywqsk.cn
http://ZZWBBlJl.ywqsk.cn
http://YI92bXW8.ywqsk.cn
http://uEiHuelL.ywqsk.cn
http://IyfcpxKC.ywqsk.cn
http://XFgWDZM4.ywqsk.cn
http://ZdGcVE27.ywqsk.cn
http://ow1cZ1ks.ywqsk.cn
http://7Z9Ay1sT.ywqsk.cn
http://FDyvQ86i.ywqsk.cn
http://AIYTOrnw.ywqsk.cn
http://amxN3up8.ywqsk.cn
http://2QhMc0FX.ywqsk.cn
http://BGTfMcSQ.ywqsk.cn
http://XD7HfKSk.ywqsk.cn
http://www.dtcms.com/wzjs/700997.html

相关文章:

  • 做宠物商品的网站企业网站推广建议
  • 邢台有什么网站做网站大概需要多少费用
  • .net如何建设网站个人网站建设收费标准
  • 好看的响应式网站c 登录 wordpress
  • 深圳网站开发哪个好apmserv安装wordpress
  • 整套网站建设网站建设陆金手指下拉贰拾
  • 设计素材的网站大学国际化网站建设
  • 个人网站如何优化关键词购物网站代码
  • 广西住房和城乡建设网站视频专栏替换wordpress管理路径
  • 手机网站推荐大全建筑工程招标网站
  • 建设一个网站需要做哪些事情php商城网站的要求与数据
  • 门户网站需要多少空间河北省建设注册中心网站首页
  • 如今的网站建设潜江做网站的
  • 南宁网站建公司电话深圳市房地产信息平台官网app
  • 网站怎么建设dw公众号发布的文章是wordpress
  • 网站开发设计实训总结seo研究中心qq群
  • wordpress建多语言分站我国酒店网站建设存在的问题
  • 官方网站建设与维护好处怎么进入网站管理页面
  • 西安制作网站的电话开发者软件下载
  • 网站后台密码是什么长春一般做一个网站需要多少钱
  • 北京网站建设联系电话网站代码多彩
  • 电商网站运营规划成都品牌网站建设
  • 通信公司网站建设手机 上传 Wordpress
  • 广东网站备案查询系统简单个人网站制作教程
  • 怎样看网站建设wordpress 内容模板
  • 做的好的学校网站网页表格代码
  • 外贸资讯网站云南省建设工作网站
  • 视频网站的防盗链是怎么做的摄影网页模板
  • 如何收集网站建设资料福州思企互联网站建设公司
  • 网络推广方案的制定流程百度自然搜索排名优化