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的底层的原理。

相关文章
|
2月前
|
监控 JavaScript 前端开发
使用Vue.js开发员工上网行为监控的实时数据展示页面
使用Vue.js开发的实时员工上网行为监控页面,展示员工访问的网站、应用和时间等数据。页面响应式设计,适应不同设备。通过Vue组件显示实时数据,如`&lt;li v-for=&quot;activity in activities&quot;&gt;`循环渲染。数据定时更新,利用Vue的生命周期钩子和axios从服务器获取并自动刷新,确保数据的时效性。该页面有助于管理者即时了解员工网络活动,保障企业网络安全和资源管理。
163 5
|
12天前
|
Web App开发 人工智能 JavaScript
开发时遇到的问题以及一些实用小技巧(vue)
开发时遇到的问题以及一些实用小技巧
|
11天前
|
JavaScript UED
强制 Vue 重新渲染组件的5种方法,解决你开发过程中数据和视图无法同步的Bug。
强制 Vue 重新渲染组件的5种方法,解决你开发过程中数据和视图无法同步的Bug。
|
22天前
|
JavaScript
Vue 开发技巧·1
Vue 开发技巧
33 7
|
10天前
|
JavaScript 前端开发 搜索推荐
揭秘 Vue 3 的 Teleport 特性,让你实现跨组件传输内容,使得开发变得更加得心应手!!
揭秘 Vue 3 的 Teleport 特性,让你实现跨组件传输内容,使得开发变得更加得心应手!!
|
18天前
|
SQL 开发框架 前端开发
基于SqlSugar的开发框架循序渐进介绍(29)-- 快速构建系统参数管理界面-Vue3+ElementPlus
基于SqlSugar的开发框架循序渐进介绍(29)-- 快速构建系统参数管理界面-Vue3+ElementPlus
|
19天前
|
存储 开发框架 前端开发
Vue&Element开发框架中增加工作流处理,工作流的各个管理页面的界面处理
Vue&Element开发框架中增加工作流处理,工作流的各个管理页面的界面处理
|
19天前
|
开发框架 JavaScript 前端开发
Vue&Element开发框架中增加工作流处理,查看申请单中整合多个处理类型的处理
Vue&Element开发框架中增加工作流处理,查看申请单中整合多个处理类型的处理
|
1月前
|
JavaScript 开发工具 开发者
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
95 1
|
2月前
|
JavaScript 前端开发 程序员
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
31 1