vue 子组件批量导入及根据参数 动态组件渲染

<template>
    <div>
        <component class="item" :is="currentView"></component>
    </div>
</template>
<script>
const path = require("path");
const files = require.context("@/views/handle-instruction/details", false, /\.vue$/);
const modules = {};
files.keys().forEach(key => {
  const name = path.basename(key, ".vue");
  modules[name] = files(key).default || files(key);
});
export default {
    components: modules,
    computed: {
        currentView() {
            return `detail-${this.$route.query.type}`
        }
    }
}
</script>
::v-deep .item {
    .wrapper {
        margin: 0 20px;
        padding-right: 40px;
        width: 60%;
    }
    .wrapper img {
        width: 100%;
    }
    .wrapper table tr {
        vertical-align: baseline;
    }
    .wrapper p {
        margin-top: 10px;
        line-height: 1.3;
    }
    .bold {
        font-weight: bold;
    }
    .blue {
        color: #528EFE;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 中,组件可以通过 props(属性)来获取父组件传递的参数。以下是一些方法可以在组件中获取父组件参数: 1. 使用 props 属性:在父组件中,通过在组件的标签上绑定属性来传递参数组件可以通过 props 属性来接收和使用这些参数。例如: ```html <!-- 父组件 --> <template> <div> <child-component :parentParam="parentData"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { data() { return { parentData: 'Hello from parent component' }; }, components: { ChildComponent } }; </script> <!-- 组件 --> <template> <div> <p>{{ parentParam }}</p> </div> </template> <script> export default { props: ['parentParam'] }; </script> ``` 在这个例中,父组件传递了 `parentData` 参数组件,并通过 `props` 属性在组件中接收并使用该参数。 2. 使用 v-model 双向绑定:如果你需要在组件中修改父组件参数,你可以使用 `v-model` 来实现双向绑定。例如: ```html <!-- 父组件 --> <template> <div> <child-component v-model="parentData"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { data() { return { parentData: 'Hello from parent component' }; }, components: { ChildComponent } }; </script> <!-- 组件 --> <template> <div> <input type="text" v-model="childParam"> </div> </template> <script> export default { props: ['value'], data() { return { childParam: this.value }; }, watch: { childParam(newValue) { this.$emit('input', newValue); } } }; </script> ``` 在这个例中,父组件通过使用 `v-model` 将 `parentData` 参数传递给组件,并且组件可以修改这个参数组件中的 `watch` 监听了 `childParam` 的变化,并通过 `$emit` 触发了 `input` 事件,从而实现了双向绑定。 这些是在 Vue组件获取父组件参数的一些常用方法,你可以根据具体的需求选择适合的方法来使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值