首页 > 其他分享 >Vue知识沉淀

Vue知识沉淀

时间:2023-06-08 22:26:38浏览次数:41  
标签:Vue 知识 Number listCount props 组件 沉淀 my

为什么组件my-item的props是listCount,但传入时候用:list-count传入,而 listCount与list-count不一致

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="Application">
        <my-list :count="5"></my-list>
    </div>
    <script>
        var app = Vue.createApp({});
        const listCom = {
            props: {
                count: Number,
            },
            template: `
        <div style="border: red solid 10px;">
            <my-item v-for="i in count" :list-count="count" :index="i"></my-item>
        </div>
        `
        };
        const itemCom = {
            props: {
                listCount: Number,
                index: Number,
            },
            template: `
        <div style="border: blue solid 10px;">
            <my-label :list-count="listCount" :index="index"></my-label>
        </div>
        `
        };
        const labelCom = {
            props: {
                listCount: Number,
                index: Number,
            },
            template: `
        <div>{{ index }}/{{ listCount }}</div>
        `
        };
        app.component("my-list", listCom);
        app.component("my-item", itemCom);
        app.component("my-label", labelCom);
        app.mount("#Application");
    </script>
</body>
</html>

在Vue中,组件的props属性名称是大小写不敏感的。这意味着您在定义props时可以使用camelCase(驼峰式命名)或kebab-case(短横线分隔式命名)两种命名方式。

在您的示例中,my-item组件的props定义了listCount和index两个属性:

props: {
    listCount: Number,
    index: Number,
},

然后,在父组件中,您使用了list-count这样的kebab-case命名方式来传递属性值:

<my-item v-for="i in count" :list-count="count" :index="i"></my-item>

Vue会自动将kebab-case的属性名转换为camelCase的属性名,以与组件中定义的props匹配。因此,list-count在传递给my-item组件时会被转换为listCount,并将其值传递给组件内部。

这种转换是Vue中的一项约定,并且是为了提高开发人员的灵活性和代码的可读性。您可以根据自己的喜好选择使用camelCase或kebab-case来定义props属性,并在传递属性时使用任何一种方式。Vue会根据约定进行自动转换。

标签:Vue,知识,Number,listCount,props,组件,沉淀,my
From: https://www.cnblogs.com/johnyang/p/17467830.html

相关文章

  • SpringCloud必会知识点最全(精美版)
    为什么要学习SpringCloud在项目开发中随着业务越来越多,导致功能之间耦合性高、开发效率低、系统运行缓慢难以维护、不稳定。微服务架构可以解决这些问题,而SpringCloud是微服务架构最流行的实现.1.微服务微服务架构是使用一套小服务来开发单个应用的方式或途径,每个服务基于单一业......
  • opcenter camstar designer基础知识-- Designer 菜单栏 工具栏 命令按钮
     菜单栏 工具栏 命令按钮  ......
  • vue项目之vue-cli创建项目&目录结构&编写规范&es6导入导出语法
    1vue-cli创建项目#单页面应用:spa -以后vue项目就只有一个xx.html页面-定义很多组件,不可能都写在xx.html中#单文件组件(一个组件一个文件) https://v2.cn.vuejs.org/v2/guide/single-file-components.html#ad#一个组件中有的东西 1html内容:以后html都放......
  • 总结vue3 的一些知识点:MySQL 运算符
    MySQL运算符本章节我们主要介绍MySQL的运算符及运算符的优先级。MySQL主要有以下几种运算符:算术运算符比较运算符逻辑运算符位运算符算术运算符MySQL支持的算术运算符包括:运算符作用+加法-减法*乘法/或DIV除法%或MOD取余在除法......
  • 总结vue3 的一些知识点:MySQL NULL 值处理
    MySQLNULL值处理我们已经知道MySQL使用SQLSELECT命令及WHERE子句来读取数据表中的数据,但是当提供的查询条件字段为NULL时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:ISNULL: 当列的值是NULL,此运算符返回true。ISNOTNULL: 当列的......
  • VUE | Element组件库的 el-collapse 标签的用法
    Collapse折叠面板:通过折叠面板收纳内容区域。1.基础用法可以折叠展开多个面板,面板之间互不影响。示例代码<el-collapsev-model="activeNames"@change="handleChange"><el-collapse-itemtitle="一致性Consistency"name="1"><div>与现实生活......
  • 总结vue3 的一些知识点:MySQL 排序
    MySQL排序我们知道从MySQL表中使用SQLSELECT语句来读取数据。如果我们需要对读取的数据进行排序,我们就可以使用MySQL的 ORDERBY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。语法以下是SQLSELECT语句使用ORDERBY子句将查询数据排序后再返回......
  • vue之混合mixin、插入和其他小补充
    目录一.解析一下vue项目1为什么浏览器中访问某个地址,会显示某个页面组件2在页面组件中使用小组件二、登录小案例第一步登录页面:LoginView.vue第二步访问/login显示这个页面组件第三步在LoginView.vue写html,和js,axios第四步写ajax,向后端发送请求,给按钮绑定两个一个事件第五......
  • JAVA的springboot+vue学习平台管理系统,校园在线学习管理系统,附源码+数据库+论文+PPT
    1、项目介绍在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括学习平台的网络应用,在外国学习平台已经是很普遍的方式,不过国内的管理平台可能还处于起步阶段。学习平台具有学习信息管理功能的选择。学习平台采用java技术,基于springboot框架,mysql数据库进行......
  • Vue——登录小案例、scoped、ref属性、props其他、混入mixin、插件、Element-ui
    解析Vue项目#1为什么浏览器中访问某个地址,会显示某个页面组件 根组件:APP.vue必须是 <template><divid="app"><router-view></router-view></div> </template>1配置路由 router--->index.js---&......