Vue2.0开发之——Vue组件-组件属性(34)

news2024/11/18 8:46:02

一 概述

  • 为Count组件添加自定义属性
  • 为自定义属性添加v-bind
  • 自定义属性props是只读的
  • 自定义属性default默认值
  • 自定义属性type值类型
  • 自定义属性required必填值

二 为Count组件添加自定义属性

2.1 组件的props

props 是组件的自定义属性,在封装通用组件的时候,合理地使用 props 可以极大的提高组件的复用性! 它的语法格式如下

export default{
 //组件的自定义属性
 props:['自定义属性A','自定义属性B','其他自定义属性...'],
 //组件的私有数据
 data(){
   return {}
 }
}

2.2 自定义属性示例

Count.vue

布局代码

<template>
  <div>
    <h5>Count 组件</h5>
    <p>count 的值是:{{ count }}</p>
    <button @click="count += 1">+1</button>
  </div>
</template>

自定义属性

<script>
export default {
  props: ['init'],
  data() {
    return {
      count: this.init
    }
  },
}
</script>

Left.vue

<template>
  <div class="left-container">
    <h3>Left 组件</h3>
    <hr />
    <MyCount :init="9"></MyCount>
  </div>
</template>

Right.vue

<template>
  <div class="right-container">
    <h3>Right 组件</h3>
    <hr />
    <MyCount init="6"></MyCount>
  </div>
</template>

效果图

三 为自定义属性添加v-bind

未添加v-bind(字符串)添加v-bind(数字)
<MyCount init=“6”></MyCount><MyCount :init=“6”></MyCount>

四 自定义属性props是只读的

4.1 使用自定义属性计算时出错

Count.vue代码文件

<template>
  <div>
    <h5>Count 组件</h5>
    <p>count 的值是:{{ init }}</p>
    <button @click="init += 1">+1</button>
  </div>
</template>

vue 规定:组件中封装的自定义属性是只读的,程序员不能直接修改 props 的值。否则会直接报错

[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "init"

found in

4.2 如何修改自定义属性的值

要想修改 props 的值,可以把 props 的值转存到 data 中,因为 data 中的数据都是可读可写的!

Count.vue逻辑文件

<script>
export default {
  props: ['init'],
  data() {
    return {
      count: this.init
    }
  },
}
</script>

Count.vue布局文件

<template>
  <div>
    <h5>Count 组件</h5>
    <p>count 的值是:{{ count }}</p>
    <button @click="count += 1">+1</button>
  </div>
</template>

效果图

五 自定义属性default、type、required

5.1 将数组类型的props修改为对象类型

修改前

props: ['init'],

修改后

props: {
    // 自定义属性A : { /* 配置选项 */ },
    // 自定义属性B : { /* 配置选项 */ },
    // 自定义属性C : { /* 配置选项 */ },
    init: {
      // 如果外界使用 Count 组件的时候,没有传递 init 属性,则默认值生效
      default: 0,
      // init 的值类型必须是 Number 数字
      type: Number,
      // 必填项校验
      required: true
    }
  },

5.2 说明

  • 在声明自定义属性时,可以通过 default 定义属性的默认值
  • 在声明自定义属性时,可以通过 type定义属性的值类型
  • 在声明自定义属性时,可以通过 required 选项,将属性设置为必填项,强制用户必须传递属性的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue核心】6.数据代理

1.回顾Object.defineProperty方法 Object.defineproperty Object.defineproperty 的作用就是直接在一个对象上定义一个新属性&#xff0c;或者修改一个已经存在的属性。Object.defineproperty方法需要传递3个参数&#xff0c;1.属性所在的对象 2.属性的名字 3.一个描述符对象…

Wireshark TS | PMTU 问题实例

前言 PMTU&#xff0c;说到网络上的 PMTU 所能实现的功能&#xff0c;网工对它的原理自然是如数家珍&#xff0c;不熟悉的可能就感觉高大上了&#xff0c;觉得路径 MTU 能自动发现了&#xff0c;自然端到端数据包传输就能避免数据包分片了。可是理想很丰满&#xff0c;现实很骨…

防火墙NAT综合实验——nat控制,豁免,远程,DMZ区域(带命令)

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.实验 实验要求 实验命令 前言 本章将会进行NAT的综合配置…

编程零基础转行Python,往这个方向走,绝对没有错

近几年Python的受欢迎程度可谓是扶摇直上&#xff0c;当然了学习的人也是愈来愈多。一些学习Python的小白在学习初期&#xff0c;总希望能够得到一份Python学习路线图&#xff0c;小编经过多方汇总为大家汇总了一份Python学习路线图。 对于一个零基础的想学习python的朋友来说…

对造轮子Say NO!如何移植并使用Linux内核的通用链表?(附源代码)

1. 什么是链表 链表是一种常用的组织有序数据的数据结构&#xff0c;它通过指针将一系列数据节点连接成一条数据链&#xff0c;是线性表的一种重要实现方式。 相对于数组&#xff0c;链表具有更好的动态性&#xff0c;建立链表时无需预先知道数据总量&#xff0c;可以随机分配…

字节跳动技术总监整理的这份MySQL学习文档,看完才发现要学的可太多了!

对于程序员来说&#xff0c;去任何一家公司面试&#xff0c;数据库是避不开的。开发人员对MySQL掌握的越深入&#xff0c;你能做的事情就越多。 完成业务功能&#xff0c;要懂基本的Sql语句。做性能优化&#xff0c;要懂索引&#xff0c;懂引擎。做分库分表&#xff0c;要懂主从…

Head First设计模式(阅读笔记)-13.代理模式

监控糖果机 假设现在需要一台监视器去生成报告&#xff0c;报告中包括糖果机的位置、库存等信息 // 糖果机 public class GumballMachine{String loc;public GumballMachine(String loc, int count){this.loc loc;}public String getLoc(){return loc;}// 其他方法省略 } // 监…

详解Pytorch中的torch.nn.MSELoss函数(包括每个参数的分析)

一、函数介绍 Pytorch中MSELoss函数的接口声明如下&#xff0c;具体网址可以点这里。 torch.nn.MSELoss(size_averageNone, reduceNone, reduction‘mean’) 该函数默认用于计算两个输入对应元素差值平方和的均值。具体地&#xff0c;在深度学习中&#xff0c;可以使用该函数用…

玩转webpack(03):webpack进阶使用

一、自动清理构建目录 避免构建前每次都要手动删除dist 使用 clean-webpack-plugin&#xff08;默认删除output指定的输出目录&#xff09; &#xff08;1&#xff09;依赖安装 npm i clean-webpack-plugin -D &#xff08;2&#xff09;使用 --- webpack.prod.js const Cl…

基于java学生签到考勤系统

开发工具eclipse,jdk1.8 技术&#xff1a;java swing 数据库&#xff1a;mysql5.7 学生选课系统功能&#xff1a;管理员、教师、学生三个角色 一、管理员功能&#xff1a; 1.登录、修改密码、退出系统 2.学生管理&#xff1a;添加、修改、删除、查询 3.班级管理&#x…

YOLOV1算法学习记录

前言 R-CNN系列算法&#xff08;R-CNN、SPPNet、Fast R-CNN、Faster R-CNN&#xff09;均是采用two-stage的方法&#xff08;1.提取region proposal 2.分类边框回归&#xff09;&#xff0c;主要是对region proposal进行识别定位。虽然这类方法检测精度很高&#xff0c;但由于…

Leetcode番外篇——滑动窗口的应用

各位好&#xff0c;博主新建了个公众号《自学编程村》&#xff0c;拉到底部即可看到&#xff0c;有情趣可以关注看看哈哈&#xff0c;关注后还可以加博主wx呦~~~&#xff08;公众号拉到底部就能看到呦&#xff09; 我们刚刚在上一节讲述了TCP的滑动窗口。殊不知&#xff0c;它…

基于RISC-V的Copy-On-Write

为什么需要写时拷贝呢&#xff1f; 当 shell执行指令的时候会 fork()&#xff0c;而这个 fork()出来的进程首先会调用的就是 exec来执行对应的命令&#xff0c;如果我们将 fork()创建的进程对地址空间进行了完整的拷贝,那将是一个巨大的消耗 因为在实际应用中&#xff0c;for…

微信小程序框架-全面详解(学习总结---从入门到深化)

小程序与普通网页开发的区别 小程序的主要开发语言是 JavaScript &#xff0c;小程序的开发同普通的网页 开发相比有很大的相似性。对于前端开发者而言&#xff0c;从网页开发迁移 到小程序的开发成本并不高&#xff0c;但是二者还是多少有些许区别的&#xff0c;例如&#xff…

HCIP实验 4-1:路由引入与路由控制

实验 4-1 路由引入与路由控制 学习目的 掌握OSPF与ISIS相互路由引入的配置方法掌握通过地址前缀列表过滤路由信息的配置方法掌握通过Route-policy过滤路由信息的配置方法 拓扑图 场景 你是你们公司的网络管理员。公司网络中有两部分路由区域&#xff0c;一部分运行OSPF,另外…

【Proteus仿真】【51单片机】厨房天然气泄漏检测报警系统

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1602、按键、天然气、烟雾传感器、ADC&#xff0c;报警模块等。 系统运行后&#xff0c;LCD1602显示传感器检测的天然气浓度和烟雾浓度值。 可通…

中国土地交易数据库:300w数据中国土地高频交易数据2000-2022

土地交易是土地在流通过程中多方发生的经济关系&#xff0c;土地交易的行为主要是交换的土地所有权、使用权、租赁权、抵押权等。在我国&#xff0c;土地作为一种重要资源&#xff0c;其收购储备和交易行为都由国家进行统一管理。经过改革开放几十年的探索和实践&#xff0c;土…

手机投影到电脑显示 此设备不支持miracast,因此不能以无线投影到它

在家里使用手机的体感游戏,发现手机屏幕比较小,想要将其投影到自己的笔记本电脑上,这样看得就比较大了。然后我就打开笔记本电脑,操作如下: 如下图: 原文地址:手机投影到电脑显示 此设备不支持miracast&#xff0c;因此不能以无线投影到它 - 廖强的博客 但是结果我们就看到了…

Mysql安装配置和Mysql使用六千字详解!!

目录 课前导读 一、Mysql的安装和配置 二、数据库简介&#xff1a; 1、数据库中典型代表&#xff1a; 2、数据库类型&#xff1a; 3、Mysql简介&#xff1a; 4、客户端和服务器简介&#xff1a; 三、初始MySQL 四、数据库操作 五、表的基本操作 六、表的基础增删查改…

虚拟主机、WordPress 主机和云主机之间的区别

&#x1f482; 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且…