Vue脚手架开发入门

news2024/12/25 8:58:00

Vue脚手架开发入门

安装脚手架及初始化项目

略过

后续使用的项目就是新搭建的一个项目

组件间的通信

父传子

查看《Vue初始化项目加载逻辑》这篇文章即可
父组件
在这里插入图片描述
子组件
在这里插入图片描述

子传父

场景:例如你的购物车,里面有很多商品,每个商品是一个小组件,每个组件都有价钱这个元素,每个组件之间是不清楚其他小组件的价钱的,我现在要算总价,购物车总价是在购物车这个大组件里的,那我现在要把每个小组件的价钱这个值传给购物车这个大组件中来

我们举例子就用新建项目的HelloWorld即可,将一些其他乱七八糟的删除掉

子组件的操作

<template>
  <div class="hello">
    <!--点击按钮,触发方法,方法里有自定义事件-->
    <button @click="handler">按钮</button>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data(){
    return{
      childCount:0 //没有特殊含义,只是用来标识这个值来自于子类,见名知意,后续将这个值传给父组件
    }
  },
  methods:{
    handler(){
      this.childCount++
      this.$emit('child-count-change',this.childCount)  //子传父,需要通过自定义事件来处理,这里就是自定义事件设置,通过this.$emit()来触发自定义事件
      //第一个参数,我们先随便编造一个事件,就叫child-count-change
      //第二个参数,就是事件要传入的数据
      //总结一下,就是只要一触发child-count-change事件,就会将this.childCount传入进去
      //那这个时间由谁来做一个响应的处理呢,就需要去父组件里进行一个监听
    }
  }
}
</script>

<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

父组件的操作

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld 
    msg="Welcome to Your Vue.js App"
    @child-count-change="handlerFather" 
    ></HelloWorld>
    <!--1、这里的@child-count-change,就是我们在子组件里的自定义实践,绑定到了handlerFather这个方法上,在methods里实现-->
    <p>父组件中接受的插值是: {{childData}}</p>
    <!--3、用来展示从子组件传递过来的值,只是方便观察-->
  </div>
</template>

<script>
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  data(){
    return{
      childData: 0  //2、定义一个响应式数据,之后用来承接子组件传过来的值
    }
  },
  components: {
    HelloWorld
  },
  methods:{
    //4、还记得我们在子组件里将childCount这个值传进来了
    handlerFather(childCount){
        this.childData=childCount  //5、将子组件传进来的值复制给父组件的响应式数据,按常理这里一定是更复杂的操作,例如求和等等,这样写只是为了方便而已
    }
  }
}
</script>

结果展示

按钮是子组件的,文案是父组件的
在这里插入图片描述

组件插槽

比如说现在helloworld组件里只有一个按钮了,是它的核心功能,但是比如说我们想要每次在使用这个组件的时候,有不一样的呈现的话

默认插槽

子组件原来的样子

<template>
  <div class="hello">
    <button @click="handler">按钮</button>
  </div>
</template>

父组件的内容

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld 
    msg="Welcome to Your Vue.js App"
    @child-count-change="handlerFather" 
    ></HelloWorld>
    <p>{{childData}}</p>
    <!--1、多写几个helloworld组件,想要展示有所不同,像下面再双标签中间写的内容就是给插槽的内容,可以在子组件中规定你给插槽的内容在哪里去展示-->
    <HelloWorld>这是默认内容1</HelloWorld>
    <HelloWorld>这是默认内容2</HelloWorld>
    <HelloWorld>这是默认内容3</HelloWorld>    
    <HelloWorld></HelloWorld>    

  </div>
</template>

<script>
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  data(){
    return{
      childData: 0  
    }
  },
  components: {
    HelloWorld
  },
  methods:{
    
    handlerFather(childCount){
        this.childData=childCount  
    }
  }
}
</script>


现在页面成这个样子了
在这里插入图片描述

接下来在子组件中定义插槽的内容

<template>
  <div class="hello">
    <!--1、比如我想要将父组件传进来的值放在前面,这个slot并不是一个真正的标签,如果父组件给值了,那就展示父组件的值,没给值,那就展示我们给的默认的-->
    <slot>基础的默认内容</slot>
    <button @click="handler">按钮</button>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data(){
    return{
      childCount:0 
    }
  },
  methods:{
    handler(){
      this.childCount++
      this.$emit('child-count-change',this.childCount)  
    }
  }
}
</script>

<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

在这里插入图片描述
比props的方式更简单,还可以将“这是默认内容”写成html

具名插槽

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

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

相关文章

PoseiSwap 治理通证POSE登录PancakeSwap,开盘涨幅超2100%

在 7 月 4 日&#xff0c;PoseiSwap 治理通证 $POSE 上线了 BNB Chain 上的头部 DEX PancakeSwap&#xff08;POSE/ZBC 交易对&#xff09;&#xff0c;在 $POSE 开盘交易的 10 分钟内&#xff0c;其最高涨幅达到了 2169.22%&#xff0c;所有的早期投资者基本都从中获得了不菲的…

测试与产品的那些撕逼大战

产品与测试&#xff0c;本该是一对好兄弟&#xff0c;一个为产品质量负责&#xff0c;一个为产品质量服务。但往往事与愿违&#xff0c;经常出现产品与测试撕逼大战。 为需求而撕逼 测试&#xff1a;需求不明确&#xff0c;测试用例写不出来&#xff01; 产品&#xff1a;你不…

合并回文子串(区间dp)

传送门 输入两个字符串A和B&#xff0c;合并成一个串C&#xff0c;属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。 我们定义字符串的价值为其最长回文子串的长度&#xff08;回文串表示从正反两…

Dlib —— 对视频流进行人脸识别(附C++源码)

照片效果 视频效果 注意&#xff1a;Dlib检测人脸在Release版耗时与CPU有关,本人I7 10代约100ms左右&#xff0c;这里本人将人脸检测用Yolov5对人脸简单抠图训练后 使用yolov5推理检测人脸&#xff0c;之后将检测到的人脸输入给Dlib做特征&#xff0c;发现人脸特征部分耗时也较…

androidx.appcompat.widget.SearchView怎么改搜索框提交按钮

searchView.isSubmitButtonEnabled true&#xff0c;运动后如下图&#xff1a; 怎么改搜索框提交按钮&#xff0c;按下图操作&#xff1a; 或者 打开SearchView进入看&#xff0c;一样 搜索框提交按钮改好了&#xff0c;如下图&#xff1a;

SparkSQL的数据结构DataFrame构建方式(Python语言)

SparkSQL 是Spark的一个模块, 用于处理海量结构化数据&#xff0c;其提供了两个操作SparkSQL的抽象&#xff0c;分别是DataFrame和DataSet&#xff0c;spark2.0之后&#xff0c;统一了DataSet和DataFrame&#xff0c;以后只有DataSet。 以Python、R语言开发Spark&#xff0c;使…

BurpSutie拓展插件推荐-原始模块增强插件

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 Logger&#xff08;1&#xff09;工具介绍&#xff08;2&#xff09;下载地址&#xff08;3&#xff09;使用说明 02 HAE&#xff08;1&#xff09;工具介绍&#xff08;2&#xff09;下载地址&…

【C语言static关键字】

C语言static关键字 C语言之static1、什么是static&#xff1f;2、static的意义3、C/C static的属性4、static的用法4.1、static修饰局部变量例程4.2、static修饰全局变量例程4.3、static修饰函数例程 5、结束语 C语言之static 前言&#xff1a; 先简单了解下“三大区”&#x…

数据人一直做这四项工作,即使不被BI、AI取代,也躲不过35危机!

先说我的观点&#xff1a;数据分析职业不会被BI软件替代。顺便说一句&#xff0c;数据分析职业也不会被chatgpt取代。 大家首先要搞清楚&#xff1a;取代人的从来不是工具&#xff0c;而是会使用工具的人。 数据分析师工作内容 首先&#xff0c;先让我们来全面拆解一下国内数…

聊聊极限编程与测试启发

这是鼎叔的第六十五篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。 继续聊聊著名的敏捷研发框架&#xff1a;极限编程。 极限编程&#xff08;Extreme Prog…

从腾讯、阿里、联想的ESG报告,看数字企业发展的「碳门槛」

从“互联网”到“数字化”&#xff0c;再到“ESG”。数字化不仅帮助企业打开了从传统到现代化的通路&#xff0c;也帮助企业打开了从无序到环保、通往低碳的大门。 作者|斗斗 编辑|皮爷 出品|产业家 一年一度的ESG报告披露正在来临。 腾讯发布2022年ESG&#xff08;即“…

一天掌握latex论文编辑,从标题作者,段落,数学公式,图片,图表,到参考文献全流程

目录 以下是一个基于SCI模板的完整LaTeX论文示例&#xff0c;包含注释说明 1. 创建文档&#xff1a; 2. 标题和作者信息&#xff1a; 3. 段落和文本格式&#xff1a; 4. 列表&#xff1a; 5.图片和表格&#xff1a; 5.1插入图片 5.2 插入表格 5.2.1 示例1 &#xff1a;…

计算机组成原理基础复习题(无答案版)

本套题无答案&#xff0c;整理出来适合大家完成课堂学习后&#xff0c;边翻书边对照题目检索答案&#xff0c;加深印象。 目录 一、选择题 二、填空题 三、简答题 四、设计题 一、选择题 1、完整的计算机系统应包括&#xff08; &#xff09;。 A. 运算器、存储器和控制器…

【C#】医学检验系统(LIS)源码

一、医学检验系统&#xff08;Laboratory Information Management System 简称&#xff1a;LIS&#xff09;LIS是HIS系统的一个重要的组成部分&#xff0c;其主要功能是将检验的实验仪器传出的检验数据经分析后&#xff0c;生成检验报告&#xff0c;通过网络存储在数据库中&…

《操作系统》- 线程与进程

目录 一、进程的概念二、进程的结构和特征2.1 进程的结构2.2 进程的特征 三、线程的概念四、进程和线程比较五、线程的实现方式 一、进程的概念 程序放在磁盘上不叫做进程&#xff0c;只有运行起来之后才叫做进程&#xff0c;进程进程就是进行中的程序&#xff01;一次运行就会…

spring boot security使用jwt认证

前言 在前面的几篇文章中&#xff1a; spring boot security快速使用示例 spring boot security之前后端分离配置 spring boot security自定义认证 spring boot security验证码登录示例 基本对常用的基于cookie和session的认证使用场景都已覆盖。但是session属于有状态认证&am…

GAMES101笔记 Lecture10 Geometry1 (Introduction)

目录 Application for Texture(纹理的应用)Environment Map(环境光贴图)Spherical Environment Map(球形环境光贴图)Cube Map(立方体贴图) Texture can affect shading!(纹理可以作用于着色)How to perturb the normal (in flatland)(如何计算法线如何变化呢&#xff1f;)Displ…

《AutoSar实战》读写DID之三:代码实现

文章目录 前言一、检查生成的接口以及数据类型1. 读DID函数接口生成2. 写DID函数接口生成3. 写NvM接口生成4. RAM数组生成 二、代码编写1. 读DID2. 写DID 总结 前言 本系列主要基于DaVinCi工具链来展开具体DID读写的配置以及最终实现。 DID读写功能实现流程包括如下几点&#…

行走江湖,一最多的行

本篇博客会讲解力扣“2643. 一最多的行”的解题思路&#xff0c;这是题目链接。 本题的思路是&#xff1a;从上到下遍历二维数组&#xff0c;统计每一行1的个数。使用ret数组的第一个元素维护1最多的行的下标&#xff0c;第二个元素维护最多的1的个数。若发现某一行的1的个数比…