uni-app 组件在APP中用驼峰命名不管用
uni-app 组件在APP中用驼峰命名不管用
示例代码:
import listView from "./components/list-view.vue";
<list-view type="1" :dataList="dataList" @cheng="cheng"></list-view>
操作步骤:
import listView from "./components/list-view.vue";
<list-view type="1" :dataList="dataList" @cheng="cheng"></list-view>
组件list-view 不能正常显示
预期结果:
组件list-view 可以正常显示
实际结果:
import listView from "./components/list-view.vue";
<list-view type="1" :dataList="dataList" @cheng="cheng"></list-view>
//组件list-view 不能正常显示
import listView from "./components/list-view.vue";
<listView type="1" :dataList="dataList" @cheng="cheng"></listView>
这种写法才能正常显示
两种写法都能正常显示
bug描述:
import listView from "./components/list-view.vue";
<list-view type="1" :dataList="dataList" @cheng="cheng"></list-view>
这种用法在APP中不管用;
必须用listView才可以
import listView from "./components/list-view.vue";
<listView type="1" :dataList="dataList" @cheng="cheng"></listView>
项目信息 | 描述 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | win10 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.29 |
手机系统 | Android |
手机系统版本 | Android 15 |
手机厂商 | vivo |
手机机型 | iq11 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
list-view在uniappx上是内置组件 估计是冲突了 应该是这个原因
你这个自定义组件 可以换个名字 或者就先用驼峰的写法
厉害
搜得死内
在uni-app中,组件命名确实需要注意一些平台差异,尤其是在原生APP开发中,某些命名规范可能与Web开发有所不同。虽然uni-app设计初衷是为了跨平台开发,尽量统一API和命名规范,但在特定平台上(如iOS和Android),原生组件可能仍然遵循各自平台的命名习惯。针对你提到的“驼峰命名不管用”的问题,这通常与原生组件的属性传递有关。
在uni-app中,组件属性在HTML模板中通常使用kebab-case(短横线命名法),而在JavaScript或TypeScript代码中则可以使用camelCase(驼峰命名法)。然而,当这些属性传递到原生组件时,可能因平台差异而导致不被正确识别。
示例代码说明
假设你有一个自定义组件MyComponent.vue
,其中有一个属性myCustomProperty
:
<template>
<view>
<!-- 在模板中使用kebab-case -->
<custom-view :my-custom-property="value"></custom-view>
</view>
</template>
<script>
export default {
props: {
// 在JavaScript中使用camelCase
myCustomProperty: {
type: String,
default: ''
}
},
data() {
return {
value: 'Hello, uni-app!'
};
}
}
</script>
如果custom-view
是一个原生组件或者封装了原生组件的uni-app组件,你可能需要确保属性在传递到原生层时是正确的格式。在某些情况下,你可能需要在组件内部进行属性名的转换,或者确保在父组件中传递属性时使用kebab-case,即使你在Vue组件内部使用camelCase。
注意事项
- 平台差异:不同平台(如微信小程序、H5、App等)对属性名的处理可能有所不同。在App端,尤其是iOS和Android,原生组件可能更严格地遵循平台的命名规范。
- 属性传递:确保在模板中绑定属性时使用kebab-case,这是Vue推荐的实践,也是与HTML属性命名规范一致的。
- 文档查阅:查阅uni-app官方文档和相关平台(如微信小程序、Android、iOS)的文档,了解属性命名的具体要求。
总之,虽然uni-app努力统一跨平台的开发体验,但在处理原生组件时,仍然需要注意平台特定的命名规范。如果遇到驼峰命名不被识别的问题,可以尝试使用kebab-case进行属性命名,或者在组件内部进行适当的转换处理。