• vue二十九:多个文件组件集成


    准备好两个组件

    在根组件中引入

    注册方式1:全局注册

    注册方式2:局部组件注册

    实现在navbar组件中,控制sidebar组件的显示和隐藏

    navbar组件中留一个插槽

    sidebar组件添加一些内容

    在根组件中写控制逻辑

    以上案例有个问题,子组件的css被主组件的css覆盖了

    解决方案:在子组件的style标签,加上作用域声明scoped

    Navbar

    <template>
    <div>
    Navbar
    <slot></slot>
    </div>
    </template>

    <script>
    export default {
    name: "Navbar"
    }
    </script>

    <style scoped>

    </style>

    sidebar

    <template>
    <div>
    Sidebar
    <ul>
    <li>111</li>
    <li>222</li>
    </ul>
    </div>
    </template>

    <script>
    export default {
    name: "Sidebar"
    }
    </script>

    <style lang="scss" scoped>
    ul {
    li {
    background: red;
    }
    }
    </style>

     根组件

    <template>
    <div>
    hello vue
    <input type="text" ref="inputText">
    <button @click="handleAdd()">add</button>
    <ul>
    <li v-for="data in datalist" :key="data">
    {{ data }}
    </li>
    </ul>

    <navbar>
    <button @click="isShow=!isShow">navbar按钮,点击控制sidebar是否展示</button>
    </navbar>
    <sidebar v-show="isShow"></sidebar>
    </div>
    </template>

    <script>
    // 导入组件
    import navbar from './components/Navbar'
    import sidebar from './components/Sidebar'

    // //全局组件注册方式
    // import Vue from 'vue'
    // Vue.component('navbar', navbar)
    // Vue.component('sidebar', sidebar)

    export default {
    data() {
    return {
    isShow: true,
    datalist: ['aaa', 'bbb', 'ccc']
    }
    },
    // 局部注册
    components: {
    navbar: navbar,
    sidebar: sidebar
    },
    methods: {
    handleAdd() {
    console.log('触发了handleAdd ', this.$refs.inputText.value)
    this.datalist.push(this.$refs.inputText.value)
    }
    },

    }
    </script>

    <style lang="scss">
    ul {
    list-style: none;

    li {
    background: blue;
    }
    }
    </style>
    讨论群:249728408
  • 相关阅读:
    ckplayer的Error #2033:Can not call javascript:ckstyle()解决
    C#中的参数关键字params
    c#中的可选参数和命名参数的使用
    c#中的dynamic类型
    c#中关于变量声明那么点事
    C# 自定义控件的一些文章和博客
    datatable,查询,排序,复制等操作
    HTML5 实现图像模糊算法
    FASTCGI程序,做个备份,以后用
    PHP的一些函数
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/12392040.html
Copyright © 2020-2023  润新知