Taro3+Vue3重构Mpvue小程序项目踩坑记

2023-11-29 00:28

本文主要是介绍Taro3+Vue3重构Mpvue小程序项目踩坑记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、Taro小程序编译时报错;

图片描述

  • 原因:页面中存在小程序识别不了的标签;如div
  • 解决方法:
      1. 将div标签替换成小程序可识别的标签;
      1. 安装Taro中提供的插件:@tarojs/plugin-html, 使其可被识别;
        插件安装教程参考Taro官网:https://taro-docs.jd.com/docs/use-h5

2、微信的page-container组件弹出时将页面滚动至顶部?

  • 原因:page-container组件弹出时,page标签会被添加上如下样式,导致页面会被滚动至顶部;
    在这里插入图片描述

  • 微信开放社区提供的解决方案可参考:https://developers.weixin.qq.com/community/develop/doc/000ca0ca3c496803b7db22fa85bc00?_at=1584495477343.;

  • 我在项目中的解决方案如下:弹出层子组件使用了nut-popup进行弹出,当父组件滚动时记录当前滚动的高度,给标签添加scroll-top属性;
    在这里插入图片描述

3、编译时提示如下错误;

  • 原因:在两个不同页面件中a.css和b.css样式文件引入先后的顺序不一致;具体原因可查看:https://laysent.com/til/2019-11-28_conflicting-order-in-mini-css-extract-plugin
    在这里插入图片描述
  • 解决方法:
    • 如果a.css和b.css文件有关联性,即b.css必须在a.css文件后引入,则在每个页面中统一CSS的引入顺序;
    • 在config/index.js文件中增加如下配置:忽略CSS引入的顺序检查;
      在这里插入图片描述

4、给本地this变量起别名时ts报错:在这里插入图片描述* 原因:eslint 为了防止this变量和局部变量混淆

  • 解决方法:在 .eslintrc.js中的rules添加 “@typescript-eslint/no-this-alias”: [“off”]

5、Taro3中不支持样式的scoped写法,容易出现页面间的样式污染,怎么解决?

  • 解决方法:
    • 1)修改冲突的选择器名称,使其不重复;
    • 2)使用CSS Modules管理每个业务页面的样式;
  • CSS Modules使用步骤:(参考Taro官网教程:https://taro-docs.jd.com/docs/css-modules)
    • 1)在配置文件中开启css modules的使用;
    • 2)修改css的文件名;页面的xxx.scss文件修改为xxx.module.scss;
    • 3)在js文件中引入xxx.module.scss文件;
    • 4)在.vue文件中使用styles.xxxx使用选择器;
    // config/index.js文件...mini: {cssModules: {enable: true, // 默认为 false,如需使用 css modules 功能,则设为 true}}...// xxx业务模块jsimport styles from './xxx.module.scss';setup() {return {styles}}

6、使用modules时父子组件样式的问题;

  • 问题描述:子组件有一个样式stylesChild.A,父组件调用子组件的时候需要复用子组件的样式,但是在父组件中子组件的父容器样式是stylesParent.xxxx;那么子组件自己的样式就复用不了了;
  • 解决方法:
    • 1)子组件定义className属性,父组件使用子组件时将类名传入,在子组件中复写传入的className样式;
      在这里插入图片描述
    • 2)css modules和普通class混用, 在父组件使用子组件时给子组件添加普通class,然后在父组件中定义普通class样式;
      在这里插入图片描述

7、购物车页面数量输入框聚焦时输入键盘向上顶起,页面会滚动一段距离,导致输入框的内容移位?

  • 解决方案参考:https://developers.weixin.qq.com/community/develop/article/doc/000a00e1fd0790488e6a034f156813

8、nutui实现各组件主题颜色定制;

  • 官网配置参考链接:https://nutui.jd.com/theme/#/base

9、border-radius在模拟器和安卓手机上显示正常,但是在IOS手机上不显示;

  • 解决方法参考:https://developers.weixin.qq.com/community/develop/doc/000a6c9dee8fc0866e3b9ed5651400

  • 在使用transform的元素的上一级元素上添加如下css样式:-webkit-transform: rotate(0deg);

10、小程序打包上传预览版时提示: xxxx无依赖文件;

  • xxxx.LICENSE.txt: 为xxxx文件的注释单独存放的文件,
  • terserWebpackPlugin.extractComments:是否将注释提取到单独的文件;设置打包时为false,不将注释提取到单独的文件中;
  // config/dev.js的文件内容...mini: {...chain.merge({plugin: {install: {plugin: require('terser-webpack-plugin'),args: [{terserOptions: {...},extractComments: false  // 不将注释提取到单独文件}]}}...})}

11、小程序项目引入crypto-js插件后,提示包体积过大?

  • 解决方案:
    • 1)将插件包降级为3.1.9-1,因为4.1.1版本包含了bower和node部分,
      官网问题描述参考:https://github.com/brix/crypto-js/issues/276
    • 2)使用时不要整包加载,要按需引入;
      不建议: let CryptoJS = require(‘crypto-js’)

12、扫描/识别二维码进入指定的小程序中某个页面是怎么实现的?

  • 1)根据vue-qr和qr-code插件在后台管理系统动态生成二维码,该二维码绑定的有一个普通链接;
  • 2)在小程序开发者后台:开发管理-开发设置-扫普通链接二维码打开小程序选项中配置二维码地址和小程序打开路径的对应关系;即可实现扫二维码跳转到指定小程序的页面;

这篇关于Taro3+Vue3重构Mpvue小程序项目踩坑记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/430777

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依