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

免费做四年级题的网站seo最强

免费做四年级题的网站,seo最强,海口做网站价格,淄博网站开发本文主要记录使用uniappvue3开发微信小程序遇见的各种常见问题及注意点。(持续更新) 问题: 自定义组件为什么有些样式加不上去 给自定义组件增加class的时候,有时候不生效有时候生效,一度让我怀疑自己记忆错乱。后来…

本文主要记录使用uniapp+vue3开发微信小程序遇见的各种常见问题及注意点。(持续更新)

问题:

自定义组件为什么有些样式加不上去

给自定义组件增加class的时候,有时候不生效有时候生效,一度让我怀疑自己记忆错乱。后来突然想到自定义组件可能默认是display: inline,所以才导致的 width/margin-top/margin-bottom 等块属性不生效。一试果然如此,那么直接更改自定义组件样式加个display: block即可: <NoData class="block pt-160">

如何解决使用各种dialog组件导致的滚动穿透问题

本质上是禁用touchmove默认的滚动行为,uniapp用.stop修饰符可阻止默认行为

小程序写法

html复制代码  <view catchtouchmove="true"><dialog .../></view>

uniapp写法

html
复制代码  <uni-popup @touchmove.stop />

禁用touchmove会同时禁掉dialog组件内部的滚动,所以如果内部也需要滚动,则需要借助 page-meta 标签(page-meta须为根标签)

html复制代码<page-meta :page-style="`overflow:${pageScrollFlag?'visible':'hidden'}`">...
</page-meta>

unplugin-vue-components 不生效,仍需手动导入

vite.config.ts文件中 需要把unplugin-vue-components插件提前到uni之前!!! 需要把unplugin-vue-components插件提前到uni之前!!! 需要把unplugin-vue-components插件提前到uni之前!!!

正确写法:

js复制代码  Components({dirs: ['src/components'],dts: 'typings/components.d.ts',}),uni(),

错误写法:

js复制代码  uni(),Components({dirs: ['src/components'],dts: 'typings/components.d.ts',}),

官方好大的坑:官方issue

子组件使用onShow、onPullDownRefresh、onReachBottom 导致接口重复触发

在页面子组件中使用onShow等是挺高频的需求,但是在 v-if 的子组件中使用了onShow等,在子组件状态来回切换时,会出现闭包导致子组件的onShow等无法被销毁,从而在onShow时回调函数中的逻辑重复执行,严重时甚至可能会造成内存溢出假死。为了解决这个问题,我封装了几个方法,本质上都是在 onunmounted 中将回调函数要执行的逻辑重置为空函数,这样虽然闭包还在但是不会再重复触发回调的逻辑:

封装 onShow:

js复制代码export const initOnshow = async (cb: () => Promise<void>) => {let isFirstOnShow = trueonMounted(() => {cb().finally(() => {isFirstOnShow = false})})onUnmounted(() => {// 卸载闭包,防止内存泄漏onShowFn = () => {}})let onShowFn = () => {if (isFirstOnShow) {isFirstOnShow = falsereturn}cb()}onShow(() => onShowFn())
}

封装 onPullDownRefresh:

js复制代码export const initRefresh = async (cb: () => Promise<void>) => {onUnmounted(() => {// 卸载闭包,防止内存泄漏pullDownRefresh = async () => {}})let pullDownRefresh = async () => {await cb()uni.stopPullDownRefresh()uni.showToast({ title: '刷新成功', icon: 'success' }).then()}onPullDownRefresh(() => pullDownRefresh())
}

封装 onReachBottom

js复制代码export const initReachBottom = async (cb: () => Promise<void>) => {onUnmounted(() => {// 卸载闭包,防止内存泄漏onReachFn = () => {}})let onReachFn = () => {cb()}onReachBottom(() => onReachFn())
}

input数据改变后页面没有实时更新

js复制代码const price = ref(0)
const handleInput = () => {nextTick(() => {if (price.value > 100) {price.value = 100}})
}

showLoading 和 showToast 不能同时存在

真机上如果使用 hideLoading 会立马把 toast 取消掉,所以同时出现时使用setTimeout延迟toast的时机。

怎么做状态管理和持久化

vue3 推荐使用 pinia 做全局状态管理,使用体验比 vuex 好不知道多少倍。pinia 本身相当于sessionStorage,如果要做持久化缓存需要使用 uni.setStorageSync()。而如果有大量持久化需求则需要引入另一个插件 pinia-plugin-unistorage。

关于使用 unocss

原子化CSS是一种将css用class书写出来的方式,很好的解决了关注点分离带来的痛处。在vue的单文件开发模式中,经常烦恼的一件事就是template和style中切来切去,写起来时有不畅。而原子化css则解决了这个麻烦,可以在开发时少写大量代码,较大程度提升开发体验并节省开发时间。(推荐同时使用vscode插件UnoCSS,可以显示class实际属性)

同为原子化工具,UnoCSS 相较于 Tailwind CSS 较大的优势是class都是按需生成,且规则编写更加灵活(只需要会一点点正则)。最重要的是unocss完全兼容Tailwind CSS。


注意点:

不支持vue的render、inline-template、X-Templates、keep-alive、transition

relaunch redirectTo navigateTo 区别和用法

redirectTo: 关闭当前页面(销毁了当前页面在路由栈中的历史记录),跳转到应用内的某个页面。

reLaunch: 关闭所有页面,打开到应用内的某个页面。(清空了路由栈,此时调用getCurrentPages()得到空数组)

navigateTo 跳转到某个页面,保留当前页面的历史记录,在下个页面可使用navigateBack()返回到当前页面。

  • 建议跳转登录页等使用redirectTo,登录后再使用redirectTo跳回原页面。
  • 建议跳转到首页、我的等等一级页面使用reLaunch,这样可以避免路由栈缓存的页面过多导致栈溢出。(小程序最多打开20个页面)
  • 建议跳转有返回按钮的页面使用navigateTo,保留栈历史。

事件修饰符

以下为uniapp官方文档,小程序只支持.stop .native两个修饰符

  • .stop: 各平台均支持,使用时会阻止事件冒泡,在非 H5 端同时也会阻止事件的默认行为
  • .native: 监听原生事件,各平台均支持
  • .prevent: 仅在 H5 平台支持
  • .capture: 仅在 H5 平台支持
  • .self: 仅在 H5 平台支持
  • .once: 仅在 H5 平台支持
  • .passive: 仅在 H5 平台支持

生命周期

uniapp小程序除了小程序自己的页面生命周期,还有vue的组件生命周期。

  • onLoad 当页面加载时触发,回调接收来自上个页面传递的参数
  • onShow 当 uni-app 启动,或从后台进入前台显示
  • onHide 当 uni-app 从前台进入后台
  • onPullDownRefresh 当下拉刷新时触发
  • onReachBottom 当页面滚动到底部时触发

注意onLoad生命周期只会在页面加载时触发,所以如果用在组件中,当组件v-if重新加载时,不会重新触发。如果要重新触发,需要使用onMounted等vue组件生命周期。

好文推荐

  • uniapp小程序开发的超长实践总结!最全笔记收藏-CSDN博客

文章转载自:
http://wanjiaseparable.gcqs.cn
http://wanjiasuboptimal.gcqs.cn
http://wanjiaomophagy.gcqs.cn
http://wanjiazoolatry.gcqs.cn
http://wanjiaadapter.gcqs.cn
http://wanjiaserioso.gcqs.cn
http://wanjiametalliding.gcqs.cn
http://wanjiaparr.gcqs.cn
http://wanjiapanzer.gcqs.cn
http://wanjiabanksia.gcqs.cn
http://wanjiaskep.gcqs.cn
http://wanjiasettled.gcqs.cn
http://wanjiaordination.gcqs.cn
http://wanjiaunequipped.gcqs.cn
http://wanjianucleochronometer.gcqs.cn
http://wanjiaalow.gcqs.cn
http://wanjiaauriscope.gcqs.cn
http://wanjiacooperation.gcqs.cn
http://wanjiabowshock.gcqs.cn
http://wanjiairrecusable.gcqs.cn
http://wanjiaflippantly.gcqs.cn
http://wanjialawes.gcqs.cn
http://wanjiapeabrain.gcqs.cn
http://wanjiascapiform.gcqs.cn
http://wanjiaentozoologist.gcqs.cn
http://wanjiamonostable.gcqs.cn
http://wanjiawineglass.gcqs.cn
http://wanjiaanovulatory.gcqs.cn
http://wanjiamondain.gcqs.cn
http://wanjiaprofanely.gcqs.cn
http://wanjiaunfeather.gcqs.cn
http://wanjiaarf.gcqs.cn
http://wanjiamasqat.gcqs.cn
http://wanjiasagamore.gcqs.cn
http://wanjiachristolatry.gcqs.cn
http://wanjianonetheless.gcqs.cn
http://wanjiagilolo.gcqs.cn
http://wanjiasolidaric.gcqs.cn
http://wanjiaretardatory.gcqs.cn
http://wanjiavigo.gcqs.cn
http://wanjiaunderearth.gcqs.cn
http://wanjiaapyrexia.gcqs.cn
http://wanjiaresultative.gcqs.cn
http://wanjiamolecule.gcqs.cn
http://wanjiabilbo.gcqs.cn
http://wanjiabawdy.gcqs.cn
http://wanjiarancherie.gcqs.cn
http://wanjiatetraparesis.gcqs.cn
http://wanjiamonopode.gcqs.cn
http://wanjiaenantiomorphism.gcqs.cn
http://wanjiaaftergrass.gcqs.cn
http://wanjiachangeability.gcqs.cn
http://wanjiaadjustable.gcqs.cn
http://wanjiawaive.gcqs.cn
http://wanjiaoperose.gcqs.cn
http://wanjiaseriate.gcqs.cn
http://wanjiaelkhound.gcqs.cn
http://wanjiaweighbridge.gcqs.cn
http://wanjianucleosidase.gcqs.cn
http://wanjiaunshrinking.gcqs.cn
http://wanjiapokelogan.gcqs.cn
http://wanjiaferroalloy.gcqs.cn
http://wanjiatribunite.gcqs.cn
http://wanjiakonfyt.gcqs.cn
http://wanjiagluten.gcqs.cn
http://wanjiaopisometer.gcqs.cn
http://wanjiapotty.gcqs.cn
http://wanjiaslight.gcqs.cn
http://wanjiakemb.gcqs.cn
http://wanjiawindowsill.gcqs.cn
http://wanjiara.gcqs.cn
http://wanjiaacanthi.gcqs.cn
http://wanjiasubduplicate.gcqs.cn
http://wanjianarrowcast.gcqs.cn
http://wanjiamycenaean.gcqs.cn
http://wanjiaavengingly.gcqs.cn
http://wanjiaswedenborgian.gcqs.cn
http://wanjiaradiogeology.gcqs.cn
http://wanjiaanilin.gcqs.cn
http://wanjiahairstreak.gcqs.cn
http://www.15wanjia.com/news/129235.html

相关文章:

  • 怎么开网店做代理深圳有实力的seo公司
  • 做网站需要什么部门批准推广赚佣金的平台
  • 高端网站建设注意如何做好一个网站
  • 网站建设的原则有哪些百度手机助手app下载官网
  • 天津模板建站代理精准信息预测
  • 做铁合金用哪个外贸网站好百度查重工具
  • 常用的网页编辑工具有哪些北京网站优化技术
  • 专门做卫生间效果图的网站一个新手怎么做推广
  • 做第三方seo优化网站成人短期就业培训班
  • 美容美发网站建设方案站长工具查询网站信息
  • 做支付网站网站推广软件哪个最好
  • 郑州网站建设yipinpai产品推广计划书怎么写
  • 房地产 网站 案例谷歌广告联盟一个月能赚多少
  • 哪个网站有学做内帐的视频百度搜索引擎优化方案
  • 西青天津网站建设品牌策划方案
  • 丰台周边网站建设做什么推广最赚钱
  • 建设网站聊天室seo优化教程自学网
  • 哈尔滨网站建设工作产品推广思路
  • 苹果手机怎么做ppt下载网站吗南宁网络推广平台
  • 免费网页制作软件下载seo文章
  • 交友网站开发碎机通百度推广联盟
  • 常见网站开发的语言seo营销课程培训
  • 黄冈黄页seo关键词库
  • 大气网站后台界面哈尔滨优化网站公司
  • 网站信息更新如何做seo网页优化平台
  • 做网站最新技术新浪微指数
  • 重庆市官方网站搜索引擎营销案例分析
  • wordpress展示主题百度seo怎么做网站内容优化
  • 做一元购网站快速seo优化
  • 做宣传 为什么要做网站那seo顾问服务四川