首页 > 其他分享 >VUE基础:组件CSS样式、props属性

VUE基础:组件CSS样式、props属性

时间:2023-03-15 12:22:50浏览次数:58  
标签:VUE 自定义 init props 组件 data CSS 属性

VUE基础部分

组件css样式例子

<style lang="less">
// 这里记得改名,然后给div也加名字
.comName-container {
  padding: 10 20px 20px;
  background-color: lightskyblue;
  min-height: 250px;
  flex: 1;
}
</style>

并且App.vue中需要用到

.app-container {
  padding: 1px 20px 20px;
  background-color: #efefef;
}
.box {
  display: flex;
}

css样式部分

首先:每个组件中的样式,都会影响整个 index.html 页面中的 DOM 元素

scoped

防止样式冲突,能够使得只在这个组件中的h3变蓝,其他的组件不影响。

若无scoped则其他组件中的h3会跟着变蓝。

<style lang="less" scoped>
	h3 {
  color: blue;
}
</style>

/deep/

若要使得组件内的子组件的h5变色,添加此即可。

/deep/  h5 {
  color: blue;
}

vue组件中data的写法

组件中的错误写法:

vue组件中的错误写法:(不能指向对象!之前是在html中导入vue连接,而现在不行)
data {
username:'zs'
} 

组件中的data写成一个函数,数据以函数返回值形式定义,这样每复用一次组件,就会返回一份新的data,
类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据。

正确的:

data() {
    return {
      message: 'hello vue.js',
      // 定义 books 数组,存储的是所有图书的列表数据。默认为空数组!
      books: []
    }
}

props自定义属性

使用者通过自定义属性,为当前组件指定初始值。自定义属性的名字,是封装者自定义的(只要名称合法即可)

注意:props 是“只读”的,不要直接修改 props 的值,否则终端会报错!所以适合作为初始值。

自定义属性中,又附带已经定义的可用的属性:

  • default:如果外界使用 Count 组件的时候,没有传递 init 属性,则默认值生效
  • 定义init 的值类型必须是 Number 数字,不是则终端报错
  • 必填项校验:要求init必须要传入
default: 0,
type: Number,
required: true

例:

不同的人调用可以产生不同的值,也就是Left和Right分别为9,6,是自己赋值的

首先,初始化一个Count组件

组件内的数据绑定方法区别

init是一个字符串:"9"
	<MyCount init="9"></MyCount>
init是一个数字6
    <MyCount :init="6"></MyCount>
②MyCount组件中:
<template>
  <div>
    <h5>Count 组件</h5>
    <p>count 的值是:{{ count }}</p>
    <button @click="count += 1">+1</button>
    <!-- 若给这里的count赋值为字符串,则会一直增加为count11111,为数字则正常递增 -->
  </div>
</template>


<script>
export default {
  
  props: {
    init: {
      default: 0,
      type: Number,
      required: true
    }
  },

  data() {
    return {
      // 把 props 中的 init 值,转存到 count 上。毕竟data是可读可写的。
      count: this.init
    }
  }
}
</script>

Left中:

<MyCount :init="9"></MyCount>

Right中:

<MyCount :init="6"></MyCount>

结果:

当Left和Right分别调用这个组件加入到自己内部的时候,展示:

标签:VUE,自定义,init,props,组件,data,CSS,属性
From: https://www.cnblogs.com/tupo/p/17218045.html

相关文章

  • 前端常考vue面试题(必备)
    computed的实现原理computed本质是一个惰性求值的观察者。computed内部实现了一个惰性的watcher,也就是computedwatcher,computedwatcher不会立刻求值,同时持有......
  • css包含块
    什么是包含块?对于元素的尺寸和位置,会受它的包含块所影响。对于一些属性,例如:width,height,padding,margin,绝对定位元素的偏移值(position被设置成absolute或者fixed),当我们对其......
  • vue源码分析-挂载流程和模板编译
    前面几节我们从newVue创建实例开始,介绍了创建实例时执行初始化流程中的重要两步,配置选项的资源合并,以及响应式系统的核心思想,数据代理。在合并章节,我们对Vue丰富的选项......
  • 校招前端vue面试题(边面边更)
    Vue模版编译原理知道吗,能简单说一下吗?简单说,Vue的编译过程就是将template转化为render函数的过程。会经历以下阶段:生成AST树优化codegen首先解析模版,生成AST语法树(......
  • 总结vue的13种传值方法
    1,父子传值,自定义属性传递参数,子组件使用props接收数据2,子传父,父组件提供自定义事件,子组件通过$emit触发事件进行传值3,v-mode传递属性4,.sync传值,提供一个具体的属性,提供......
  • vue3仿windows弹窗
     一款基于vue3的仿windows弹窗。可以组件模板编写或函数式创建。地址:https://github.com/dnoyeb/box-win   安装npmadd'box-win'两种方式:1、组......
  • Vue——mergeOptions【四】
    前言前面我们简单的了解了vue初始化时的一些大概的流程,这里我们详细的了解下具体的内容;这块建议搭建可以根据demo进行debugger来观察;内容这一块主要围绕init.ts......
  • [Vue3] 组件上的ref不能与组件名相同
    情景关键组件没有正确引入函数无限递归解决如果在网上搜索[Vuewarn]:Componentismissingtemplateorrenderfunction.或[Vuewarn]:Invalidvnodetype......
  • diango_vue cors跨域问题
    pip3install django-cors-headers注意版本,django和django-cors-headers存在版本兼容问题,安装过高版本的django-cors-headers会导致自动升级django版本,带来一些......
  • css 背景 background
    属性值说明CSSbackground-color指定要使用的背景颜色1background-position指定背景图像的位置1background-size指定背景图片的大小3background-......