vue-cli的组件化开发(下)

简介: # 复习并创建一个down组件我们先复习一下vue-cli组件的创建接下来演示我们也要用到这个down组件先看一下我们的上组件代码```<template> <div class="upStyle"> {{updata}} </div> </template> <style lang="less"> .upStyle { width: 300px; height: 300px; background-color: greenyellow; } </style>

复习并创建一个down组件

我们先复习一下vue-cli组件的创建

接下来演示我们也要用到这个down组件

先看一下我们的上组件代码

<template>
    <div class="upStyle">
        {{updata}}
    </div>
  </template>
  
  <style lang="less">
    .upStyle {
        width: 300px;
        height: 300px;
        background-color: greenyellow;
    }
  </style>
  
  <script>
    export default {
        data(){
            return {
                updata:"这是上组件"
            }
        }
    }
  </script>

参考上组件,我们来创建一个下组件

<template>
    
</template>

<style>

</style>

<script>

</script>

之前的文章已经介绍过这三个标签的作用及用法了,这里就不多赘述了

然后我们可以在<template></template>中写入html,在<style></style>中写入样式,最后在<script></script>中写入js,vue等。

写完的如下:

<template>
    <div class="downStyle">
        {{downdata}}
    </div>
  </template>
  
  <style lang="less">
    .downStyle {
        width: 300px;
        height: 300px;
        background-color: rebeccapurple;
    }
  </style>
  
  <script>
    export default {
        data(){
            return {
                downdata:"这是下组件"
            }
        }
    }
  </script>

接下来我们在App.vue中完成注册

App.vue代码

<template>
  <div>
    <up></up>
    <down></down>
  </div>
</template>

<style lang="less">
  div {
    height: auto;
    width: auto;
  }
</style>

<script>
import  up  from "@/components/up.vue";
import  down  from '@/components/down.vue';
export default {
  components:{
    up,down
  }
}
</script>

我们已经完成了这两个组件的导入,注册和使用。

全局组件的注册及使用

接下来我们来做一个全局组件的小Demo

image.png

终端运行npm run serve

出现上面样式

接下来我们来注册全局组件

import Vue from 'vue'
import App from './App.vue'
import all from '@/components/all.vue';

Vue.component('MyCount',all);

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

打开main.js文件,输入上述代码,完成全局组件的注册

解析一下,核心是通过

import all from '@/components/all.vue';

Vue.component('MyCount',all);

完成注册

接下来我们在上组件中使用一下这个全局组件

<template>
    <div class="upStyle">
        {{updata}}
        <MyCount></MyCount>来了
    </div>
  </template>
  
  <style lang="less">
    .upStyle {
        width: 300px;
        height: 300px;
        background-color: greenyellow;
    }
  </style>
  
  <script>
    export default {
        data(){
            return {
                updata:"这是上组件"
            }
        }
    }
  </script>

上面是up.vue中全部代码

接下来我们保存并刷新,发现页面变成了如下的样子

image.png

全局组件已经在上组件完成了使用,我们同样也可以在下组件中不导入注册完成使用,极大程度上简化了开发和维护的成本

随之而来的问题

随之而来的问题:

我们下方组件并没有引入这个全局组件,但是其中的div还是随着全局组件的引入而使其中的字体颜色发生了改变,那么这是为什么呢?

我们明明没有引入这个下组件呀。

样式冲突及解决

发生这个问题的原因是样式冲突,我们vue-cli的核心就是将组件渲染到index.html中指定的div区域中去,这就造成了一个页面中引入的组件中的style可能会发生冲突。

那么我们如何解决呢?

我们在<style></style>中加入scoped属性,就可以解决样式冲突,这就是我们解决的方案,

改变后的all.vue如下

<template>
    <div>
        <div class="data">
            {{allData}}
        </div>
    </div>
</template>

<style scoped>
    div {
        color: brown;
    }
    .data {
        width: 60px;
        height: 60px;
    }
</style>

<script>
export default {
    data(){
        return {
            allData:"All组件"
        }
    }
}
</script>

加入scoped后可以解决样式冲突问题,明天的文章我给大家带来scoped的底层的原理。

相关文章
|
5月前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
203 0
|
2月前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
3月前
|
JavaScript API
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
78 1
vue尚品汇商城项目-day04【24.点击搜索按钮跳转后的页面商品列表、平台售卖属性动态展示(开发Search组件)】
|
3月前
|
JavaScript 前端开发 测试技术
组件化开发:创建可重用的Vue组件
【10月更文挑战第21天】组件化开发:创建可重用的Vue组件
36 1
|
3月前
|
JavaScript 前端开发
vue全局公共组件自动引入并注册,开发效率直接起飞!
【10月更文挑战第14天】vue全局公共组件自动引入并注册,开发效率直接起飞!
84 1
|
3月前
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
691 0
|
3月前
|
JavaScript 开发者
vue指令的开发看这篇文章就够了!超详细,赶快收藏!
【10月更文挑战第8天】vue指令的开发看这篇文章就够了!超详细,赶快收藏!
vue指令的开发看这篇文章就够了!超详细,赶快收藏!
|
3月前
|
JavaScript 前端开发
Vue开发必备:$nextTick方法的理解与实战场景
Vue开发必备:$nextTick方法的理解与实战场景
296 1
|
3月前
|
JavaScript 前端开发
VUE学习三:双向绑定指令(v-mode)、组件化开发(全局组件/局部组卷/组件通信)、组件化高级(slot插槽使用)
这篇文章是关于Vue.js框架中的v-model指令和组件化开发的详细教程,涵盖了从基础使用到高级功能的多个方面。
40 1
|
3月前
|
存储 JSON JavaScript
Vue.js开发中基于localStorage与sessionStorage的本地存储利器:Vue-ls插件使用详解
Vue.js开发中基于localStorage与sessionStorage的本地存储利器:Vue-ls插件使用详解
145 0