解决uniapp编译的微信小程序不支持v-bind=“$attrs“

这篇具有很好参考价值的文章主要介绍了解决uniapp编译的微信小程序不支持v-bind=“$attrs“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 环境

原生组件无法支持v-bind;用户自定义组件以及第三方扩展组件才支持v-bind

1. uniapp
2. vite + vue3 + TypeScript + vite(移动端低代码)
3. 编译成多端通用的小程序

2. 需要分两类解决

  1. v-model属性
  • 在高版本的vue3+vite中使用父组件传递下来的props中的某一个属性,作为当前组件的子组件的v-model入参,那么将会报错
  • [vite] [plugin:vite:vue] v-model cannot be used on a prop, because local prop bindings are not writable. 09:49:27.156 Use a v-bind binding combined with a v-on listener that emits update:x event instead.
  • 正确姿势

    1. 定义一个可读可写的computed
    	const value = computed({
    	  get: () => props.modelValue,
    	  set: (val) => {
    	    emits('update:modelValue', val)
    	  }
    	})
    
    1. 将computed直接拿去双向绑定
    	<template>
    	    <uni-easyinput v-model="value"></uni-easyinput>
    	</template>
    
    1. 完整代码
    	// 父组件
    	 <GdFormComponents v-model="formData[val.props.gdSearchItemProp]" />
    	// 子组件 GdFormComponents 
    	<template>
    	    <uni-easyinput v-model="value"></uni-easyinput>
    	</template>
    	
    	<script setup lang='ts'>
    	import  {  type PropType, computed } from 'vue'
    	
    	const props = defineProps({
    	    modelValue: String as PropType<any>
    	})
    	
    	const  emits = defineEmits(['update:modelValue']);
    	
    	const value = computed({
    	  get: () => props.modelValue,
    	  set: (val) => {
    	    emits('update:modelValue', val)
    	  }
    	})
    	
    	</script>
    	
    	<style lang="scss" scoped>
    	
    	</style>
    

2.其他属性

  • 虽然小程序不知持$attrs属性,但是我们还是可以用v-bind

解决方法

  1. 父组件主动传递其他属性attrs
// 父组件
<GdFormComponents 
  v-model="formData[val.props.gdSearchItemProp]" 
  :componentName="val.props.gdChildren[0].componentName" 
  :attrs="val.props.gdChildren[0].props"
/>
  1. v-bind=“attrs”
<template>
    <uni-easyinput v-model="value" v-bind="attrs"></uni-easyinput>
</template>

<script setup lang='ts'>
import  {  type PropType, computed } from 'vue'

const props = defineProps({
    modelValue: String as PropType<any>,
    componentName: String,
    attrs: {
        type: Object as PropType<AnyObject>,
        default: () => ({})
    }
})

const  emits = defineEmits(['update:modelValue']);

const value = computed({
  get: () => props.modelValue,
  set: (val) => {
    emits('update:modelValue', val)
  }
})

</script>

<style lang="scss" scoped>

</style>

觉得有用点个赞,让更多的人看见文章来源地址https://www.toymoban.com/news/detail-478679.html

到了这里,关于解决uniapp编译的微信小程序不支持v-bind=“$attrs“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】如何上传uniApp开发的微信小程序?

    微信开发者工具下载链接 Hbuilder X下载链接 扫码 选中账号 登录成功: ps: 如果之前没有权限但是已经登录此账号,需要在获取到权限后重新登录一次❗❗ ps: 不选中 运行时是否压缩代码 有可能代码包不包含插件大小过大,导致上传失败❗❗ 小程序性能优化指南 操作1 操作

    2024年02月09日
    浏览(217)
  • uniapp微信小程序安装tailwindcss编译失败的解决思路

    今天在uniapp上安装tailwindcss后, 微信开发工具一直报wxss编译失败的错:如下图。 想来应该是Postcss没有把tailwindcss编译成css,所以app.wxss识别不了导致的问题。网上找了一圈, 也没有太好的办法。 后来想了个不太灵活的办法,既然识别不了,可以手动转换成css在引入到app里面

    2024年02月09日
    浏览(61)
  • uniapp开发的微信小程序如何上传至微信小程序平台-完整简单步骤

    这个id请登录微信小程序号   设置中查看 成功上传。 message:Error: 系统错误,错误码:80051,source size 3743KB exceed max limit 2MB  如果这样报错可以尝试分包或者减至2M以内。 分包方法参考此博文 uniapp如何分包 分包配置后无法读取static文件夹_谨言不言的博客-CSDN博客_uniapp 分包

    2024年02月16日
    浏览(122)
  • 基于uniapp的微信小程序如何刷新页面(绝对有效)

    由于我的毕业设计就是用uniapp写的微信小程序。 碰到了这样的问题,查了许多资料,最终找到了这样的方法。 现在写出来给大家节约时间和精力。 就是用uni.redirectTo 实现页面跳转从而实现页面刷新 注意:这不能刷新tabBar页面 不要傻乎乎的用在tabBar上 跳转到tabBar页面只能使

    2024年02月11日
    浏览(58)
  • 基于SpringBoot+Vue+uniapp微信小程序的微信小程序书店的详细设计和实现

    💗 博主介绍 :✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅 👇🏻 2023-2024年最值得选的微信小程序毕业设

    2024年03月17日
    浏览(79)
  • 已上传的微信小程序源码丢失,通过反编译找回

    你的程序源码已经上传,可以打开体验版或开发版小程序。 小程序包解密:链接: https://pan.baidu.com/s/1A2ZCqflr4jMLfg03U_LWHQ 提取码: 4ntn wxappUnpacker:链接: https://pan.baidu.com/s/1HQS8xQsqrhc4hziCCuFPXA 提取码: 7b6k Node.js (nodejs.org) 分别安装完成后。 打开cmd输入 node -v 确定完成安装。 通过电脑

    2024年02月12日
    浏览(78)
  • uniapp中微信小程序不能编译style绑定方法的解决方案

    这是我的代码设置了根据传参显示不同字体颜色和不同背景色 这两个方法我都写在methods中 在浏览器中H5和app模拟器的效果是一样的如图 在HbuildX中运行至微信开发者工具无效,并且报错如图 第一步 第二步 在computed添加如下代码 至此修改成功,微信开发者工具运行效果如图所

    2024年02月16日
    浏览(56)
  • 使用uniapp开发微信小程序的微信支付流程

    在我们做一些购物车的结算功能时是一定会有支付功能的,那我们如何去做微信支付这个功能呢,首先我们先要理清思路,并且要了解到接口需要哪些数据以及会返回哪些数据 注意:一定要先看接口文档! 创建订单。 ○ 请求创建订单的 API 接口:把(订单金额、收货地址、

    2024年02月09日
    浏览(76)
  • 基于uniapp的微信小程序学生信息选课系统[源码+远程+答疑

     网站介绍:✌本网站专注专注于计算机技术领域的毕业设计辅导,提供JAVA、微信小程序、Python、APP、PHP、微服务、NET等毕设项目的定制和成品服务!✌         ✌IT实战营站长,拥有10年软件相关系统架构及教学经验,Java、大数据培训讲师,曾任公司技术总监;其与团队

    2024年01月24日
    浏览(89)
  • 基于SpringBoot+Uniapp的微信小程序二手购物商城(用户手册+测试报告+详细设计文档)

    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅 文末获取项目下载方式 🍅 一、项目背景介绍: 这个微信小程序二手购物商城的背景是为了满足用户

    2024年02月12日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包