vue 简单实验 自定义组件 传参数 props

本文展示了如何在Vue应用中创建一个全局组件`todo-item`,并通过`v-bind:todo`实现数据绑定。通过`props`属性接收外部传入的参数,如`todo1`,并展示在模板中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.代码

<script src="https://unpkg.com/vue@next" rel="external nofollow" ></script>
<div id="todo-list-app">
  <todo-item v-bind:todo="todo1"></todo-item>
</div>
<script>
const ListRendering = {
  data() {
    return {
      todo1:'传递参数'
    }
  }
}
// 创建一个Vue 应用
const app = Vue.createApp(ListRendering)

// 定义一个名为 todo-item 的新全局组件
app.component('todo-item', {
  props: ['todo'],
  template: `<p>{{ todo}}</p>`
})

app.mount('#todo-list-app')
</script>

2.运行结果

 3.备注

注:这里<todo-item v-bind:todo="todo1"></todo-item>的"todo1"必须是来自组件的变量名,如果想直接赋值是不行的。

 

### Vue3 中自定义组件 Props 递数组数据未接收到的解决方案 在 Vue3 的开发过程中,如果遇到子组件无法正常接收来自父组件通过 `props` 递过来的数组数据的情况,这可能是由于多种原因造成的。下面提供几种常见的排查方法以及相应的解决策略。 #### 检查 Prop 定义型声明 确保子组件内对于 `props` 属性做了正确的配置,并指定了预期的数据型。例如,在子组件中应该这样定义: ```javascript export default { props: { options: Array, groupId: String } } ``` 这里明确指出 `options` 应该是一个数组型的值[^1]。如果不指定具体型,默认情况下任何合法 JSON 值都可以被接受作为 prop 参数传入,但这不利于错误检测和调试工作。 #### 使用默认值防止 undefined 错误 为了避免因父级尚未准备好而造成子组件获取到的是 `undefined` 或者其他意外情况下的初始状态问题,可以在子组件内部设置合理的默认参数值: ```javascript export default { props: { options: { type: Array, required: true, default: () => [] }, groupId: { type: String, default: '' } } } ``` 这样做不仅能够提升用户体验流畅度,同时也便于后续维护代码逻辑时更容易理解意图所在。 #### 父组件正确绑定动态属性 确认父组件是以正确的方式将实际存在的变量名而非字符串字面量赋给了对应的 `prop` 名称。比如应当采用如下形式来进行双向绑定操作而不是直接写死静态文本串: ```html <template> <child-component :options="dynamicOptionsArray"></child-component> </template> <script setup lang="ts"> import ChildComponent from './ChildComponent.vue'; const dynamicOptionsArray = reactive([/* 动态生成的内容 */]); </script> ``` 注意冒号前缀表示这是一个表达式的求值过程,即会尝试解析右侧表达式的结果再进行递;如果没有加冒号,则会被视为普通的 HTML attribute 赋予固定不变的文字内容[^4]。 #### 利用 Refs 进行深层嵌套访问 当面临较为复杂的多层嵌套结构时,除了常规的 `props` 下发机制外还可以考虑借助 `$refs` 来实现更灵活的操作模式。不过这种方式通常只适用于特定场景下确实有必要绕过标准流程的情形,因为过度依赖可能会破坏原有的模块化设计理念[^2]。 #### 关注响应式特性的影响 考虑到 Vue 对象具有独特的响应式特征,有时即使看起来已经完成了正常的数值更新动作,但由于某些深层次的原因导致视图并没有及时反映出最新的变化。针对这种情况建议检查是否存在深拷贝需求或是监听器遗漏等问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值