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

uniapp兼容问题处理总结

1、v-mode与:value.sync,使用了v-mode后子组件中执行 this.$emit('update:value', newVal);无效,但是改成:value.sync可以

但是要注意这个是vue2,vue3中没有value.sync,vue3 整合了,实际上的v-model就是:value.sync,后面演示,先看vue2

首先两个编译后的代码都一样

<!-- 这两行代码 -->
<filter-query :value.sync="showFilterStatus"><filter-query v-model="showFilterStatus"><!-- 实际上被 Vue 编译为 -->
<filter-query :value="showFilterStatus" @update:value="showFilterStatus = $event"
>

然后在子组件中

//v-mode可以中心配置这个选项,默认的值为  prop: 'value',   event: 'input'  
model: {prop: 'value',   event: 'update:value'   
},
//这个时都要写   
props: {value: {type: Boolean,default: false}
},

上面是他们的相同点,那他们有什么不同呢:

v-model:

  • 表单输入设计的语法糖

  • 默认行为

// 默认行为(无 model 配置时)
prop: 'value'
event: 'input

可以修改这个配置,比如父组件中

<filter-query v-model="showFilterStatus">

子组件中

model: {prop: 'value',event: 'update:value'
},

:prop.sync:

  • 任意属性的双向绑定设计,更通用,不限于表单场景

  • 默认行为(这个不可重新配置)

// 固定模式
prop: 'value'  // 就是 .sync 前面的属性名
event: 'update:value'  // update: + 属性名

上面演示的是vue2的代码,下面看看vue3,vue3中没有value.sync,vue3 整合了,实际上的v-model就是:value.sync

<!-- 父组件 -->
<filter-query v-model:value="showFilterStatus" />
// Vue 3 自组件
const props = defineProps({value: {type: Boolean,default: false}
})const emit = defineEmits(['update:value'])const toggle = () => {emit('update:value', !props.value)
}

这里如果不写:value直接写<filter-query v-model="showFilterStatus" />的话默认编译的参数值为modeValue

衍生知识:计算属性

可以写重写计算属性的get  set方法,比如下面

通过计算属性重写get set,当设置showFilterStatus的值时会执行set方法,正常在template中使用的时候执行get方法

    computed: {showFilterStatus: {get() {return this.value;},set(newVal) {this.$emit('update:value', newVal);}}},

2、微信小程序不支持大小写自动转换

比如,在子组件中定义一个dataSource字段接收父组件传过来的值

    props: {dataSource: {type: Object,required: false,default: () => {return {}}}},

在父组件中有可能写成data-source,正常可以但是小程序中这样就不行必须写成dataSource

<NewsItem :data-source="item"></NewsItem>
//上面代码小程序中不支持
<NewsItem :dataSource="item"></NewsItem>

http://www.dtcms.com/a/515837.html

相关文章:

  • 遗传算法在波动率策略优化中平衡计算效率与优化效果
  • 建立网站一般要多少钱wordpress 预订插件
  • 如何自建网站做外贸c2c网站都有哪些
  • 小红书item_get接口JSON数据解析指南
  • 【Linux】ssh升级到最新版本-以ubuntu为例
  • 算法中的链表结构
  • 【蓝队面试】Struts2漏洞原理与面试中常见的问题
  • 基于3D激光点云的障碍物检测与跟踪---(2)点云聚类
  • 测试 gRPC 调用
  • **发散创新:Web Components的深度探索与实践**随着Web技术的飞速发展,Web Components作为一
  • spark组件-spark sql
  • Copy Cell 解释
  • 列表使用练习题
  • 杭州悦数与复旦大学共建“先进金融图技术”校企联合研究中心”正式揭牌
  • 网站怎么做搜索栏蓝海网站建设
  • Win11系统更新导致博图v15.1授权报错
  • 项目案例作业3(AI辅助):使用DAO模式改造学生信息管理系统
  • 责任链模式:灵活处理请求的设计模式
  • 什么是邮件打开率?邮件营销打开率影响因素有哪些?
  • 未来的 AI 操作系统(七)——认知共生:AI 与人类的协作边界
  • 快速入门LangChain4j Ollama本地部署与阿里百炼请求大模型
  • 虫情测报灯:精准预警,守护农田安全
  • 如何设置电脑分辨率和显示缩放
  • 【GESP】C++四级真题 luogu-B4069 [GESP202412 四级] 字符排序
  • Solana 官宣中文名「索拉拉」,中文 Meme 叙事正成为链上新主流
  • 《巨神军师》在电脑上多开不同窗口不同IP的教程
  • led灯 东莞网站建设公司注册资金减少意味着什么
  • 如何正确理解flink 消费kafka时的watermark
  • 未来的 AI 操作系统(六)——从“大模型”到“小智能”:Agent生态的去中心化演化
  • [人形机器人]宇树G1拆解分析 - 主控部分