Vue组件及组件之间的通信

news2024/10/5 9:33:32

目录

一、Vue脚手架的使用

1、通过命令行使用vue-cli的指令创建:vue init webpack 项目名称

2、使用webStorm软件:本质仍然使用vue脚手架

3、使用vue ui创建:vue提供的图形化的操作界面

二、Vue的组件和组件之间的通信

1、组件:是vue的重要的特征之一,可以扩展html的功能,也可以封装代码实现重复使用。

2、组件的创建:

3、组件中的data

4、组件中的methods:和vue实例中的methods用法相同

5、Vue组件之间的通信(组件之间的数据传递)

 课堂练习:在子组件中定义input,将input的值传递给父组件

一、Vue脚手架的使用

1、通过命令行使用vue-cli的指令创建:vue init webpack 项目名称

​         build文件夹: 用于webpack打包配置文件夹

        ​ config文件夹:与webpack相关的配置文件夹

                ​ |——- index.js:可以改变项目默认的端口号

        ​ node_moudles:npm 安装的支持项目运行的库

        ​ src文件夹:项目源代码目录

                ​ |——- assets:资源目录,存放图片、css、js文件等

                ​ |——- components:组件文件夹,用来存放用户自定义的组件

                ​ |——- router:路由文件夹,用来存放路由文件

                ​ |——- App.vue:根组件。可以包含其他组件

                ​ |——- main.js:vue项目的入口js文件

        ​ static文件夹:用来存放静态资源

        ​ index.html:vue项目的页面文件(首页)

        ​ package.json:npm的配置文件(所有包的信息)

2、使用webStorm软件:本质仍然使用vue脚手架

        ​ public文件夹

                ​ |——- index.html:Vue项目的入口文件

        ​ src文件夹

                ​ |——-assets:资源目录,存放图片、css、js文件等

                ​ |——-components:组件文件夹,用来存放用户自定义的组件

                ​ |——-App.vue:根组件。可以包含其他组件

                ​ |——-main.js:vue项目的入口js文件

        ​ package.json:npm的配置文件(所有包的信息)

        ​ vue.config.js:vue项目自身的配置文件

3、使用vue ui创建:vue提供的图形化的操作界面

​ vue ui

二、Vue的组件和组件之间的通信

1、组件:是vue的重要的特征之一,可以扩展html的功能,也可以封装代码实现重复使用。

2、组件的创建:

​ (1)非脚手架方式下创建:

        ​ 第一步:使用Vue.extend创建组件

        ​ 第二步:使用Vue.component注册组件

        ​ 第三步:在html页面中使用组件

<body>
    <div id="app">
        <my-com></my-com> <!-- 使用组件:名称之间用-连接 -->
        <com-demo></com-demo>
    </div>
    <script>
        //第一步:使用Vue.extend创建组件
        var mycom = Vue.extend({
            template:'<h2>蜗牛学院</h2>'
        })
        //第二步:使用Vue.component注册组件
        Vue.component('myCom',mycom) //myCom是注册得组件名,在注册时采用驼峰命名

        Vue.component('comDemo',{
            template:`<div>
                        <label>
                            <input type="text">
                        </label>
                      </div>`
        })

        new Vue({
            el:'#app'
        })
    </script>
</body>

​ (2)使用template创建组件

        ​ 第一步:使用template创建html页面模板,并给template定义id属性

        ​ 第二步:使用template的id属性值进行注册

强调:

全局组件:在Vue实例外部通过Vue.component创建或注册的组件称为全局组件

局部组件:创建方式和全局组件的创建方式一样,注册时必须放在Vue实例内部通过components完成

<body>
    <div id="app">
        <com3 />
    </div>

    <template id="temp">
        <div>
            <h2>蜗牛学院</h2>
            <select name="" id="">
                <option value="#">请选择</option>
                <option value="1">成都</option>
                <option value="2">重庆</option>
                <option value="3">深圳</option>
            </select>
        </div>
    </template>

    <script>
        // Vue.component('com3',{ //全局组件
        //     template:'#temp'
        // })

        new Vue({ //局部组件  components -->多加一个s
            el:'#app',
            components:{
                com3:{
                    template:'#temp'
                }
            }
        })
    </script>
</body>

​ (3)在WebStorm中使用脚手架创建组件:

        ​ 第一步:创建Vue component,组件命名采用驼峰命名

<div id="app">
        <my-com></my-com> <!-- 使用组件:名称之间用-连接 -->
        <com-demo></com-demo>
</div>

3、组件中的data

​ (1)每个组件都有自己的数据:即每个组件都有自己的data

​ (2)vue实例的data和组件的data的区别:

        ​ A、vue实例的data是一个对象

        ​ B、组件的data必须是一个方法,该方法必须返回一个对象

 ​ C、vue实例中的data和组件中data在使用方法上是一样的

4、组件中的methods:和vue实例中的methods用法相同

5、Vue组件之间的通信(组件之间的数据传递)

​ (1)Vue组件之间的关系:

 

        ​ A、父子关系:A组件和B组件、B组件和C组件、B组件和D组件

        ​ B、兄弟关系:C组件和D组件

        ​ C、隔代关系:A组件和C组件、A组件和D组件

​ (2)父组件向子组件传递数据:通过props方式向子组件传递数据(在子组件中添加props属性)

        ​ 父组件:App.vue

        ​ 子组件:Son.vue

        ​ App.vue ——-users数组 ———> Son.vue

 ​ (3)子组件向父组件传值:是通过事件的形式来实现

 课堂练习:在子组件中定义input,将input的值传递给父组件

//子组件:son.vue
<template>
   <div>
     <label>
       子组件:<input  v-model="sonInfo" @input="sendInfo"/>
     </label>
   </div>
</template>
<script>
export default {
  name: "Son",
  data(){
    return {
      sonInfo: ''
    }
  },
  methods: {
    sendInfo(){
      //$emit方法:第一个参数是触发的事件名,第二个参数是子组件发生给父组件的数据
      this.$emit('changeInfo',this.sonInfo)
    }
  }
}
</script>
//父组件:App.vue
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <h2>父组件接收子组件的信息:{{ title }}</h2>
    <hr/>
    <Son v-on:changeInfo="updateTitle"/>
  </div>
</template>
<script>
import Son from './components/Son'
export default {
  name: 'App',
  components: {
    Son
  },
  data(){
    return {
      title:''
    }
  },
  methods:{
    updateTitle(e){ //参数e:接收的是子组件传递过来的数据
      this.title = e
    }
  }
}
</script>

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

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

相关文章

使用线性回归、LGBM对二手车价格进行预测

使用线性回归、LGBM对二手车价格进行预测 目录使用线性回归、LGBM对二手车价格进行预测说明数据导入、查看和清洗数据说明导入训练集导入测试集合并数据查看数据整体情况处理数据检查并处理缺失变量EDA年份和价格地区和价格前任里程和价格燃料类型和价格传动装置类型Mileage与价…

数据库 SQL 高级用法

目录 一、INSERT INTO SELECT 用法 二、逻辑控制语句 三、公式表表达式 四、存储程序 五、触发器 一、INSERT INTO SELECT 用法 INSERT INTO SELECT 语句从一个表复制数据&#xff0c;然后把数据插入到一个已存在的表中。 1、从一个表中复制所有的列插入到另一个已存在的表…

React(coderwhy)- 01

React的介绍&#xff08;技术角度&#xff09; React是什么&#xff1f;React&#xff1a;用于构建用户界面的 JavaScript 库React的官网文档&#xff1a;https://zh-hans.reactjs.org/React的特点&#xff1a; 声明式编程组件化开发多平台适配Hello React react需要3个依赖&am…

【数字图像处理】骨骼锐化

源码链接&#xff1a;skeleton.cpp 一、实验要求 附件是人体骨骼核扫描图像&#xff0c;我们的目的是通过图像锐化突出骨骼的更多细节来增强图像。图像灰度的动态范围很窄并且有很高的噪声内容。 二、实验内容 按照课本冈萨雷斯的《数字图像处理》上面的思路&#xff0c;整…

【代码题】五道链表面试题

目录 1.移除链表元素 2.反转链表 3.链表的中间结点 4.链表中倒数第k个结点 5.合并两个有序链表 1.移除链表元素 点击进入该题 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回新的头节点 。 思路&am…

CTF-AWD入门手册

引文 AWD赛制是一种网络安全竞赛的赛制。AWD赛制由安全竞赛专家及行业专家凭借十多年实战经验&#xff0c;将真实网络安全防护设备设施加入抽象的网络环境中&#xff0c;模拟政府、企业、院校等单位的典型网络结构和配置&#xff0c;开展的一种人人对抗的竞赛方式&#xff0c;…

语言和文法的形式定义---编译原理

文法的构建问题 * 参考已有的模型 最经典的即是算数表达式的模型&#xff0c;其有多个算术运算符号和优先级别。 文法与正则表达式与有穷自动机的转换 显然是3型文法&#xff0c;也就是正则文法才有相应的性质&#xff0c;因为只有3型文法才是右部至多仅有两个符 号&#xf…

【Vue路由】props配置、replace属性、编程式路由导航、缓存路由组件

文章目录props配置props值为对象props值为布尔值props值为函数总结\<router-link>的replace属性总结编程式路由导航案例实现总结缓存路由组件案例实现总结props配置 我们可以看看我们原来如何使用传递过来的参数的&#xff1a; 我们要写一大长串去从$route身上拿到我们…

传统目标跟踪——光流法

目录 一、光流法 二、LK光流法 2.1 实现原理 2.2 API 三、代码 四、总结 一、光流法 光流&#xff1a;空间运动物体在观察成像平面上像素运动的瞬时速度。 光流法利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧之间存在的对应关系&#xff0c;…

密码学_RSA

RSA是1977年由罗纳德李维斯特&#xff08;Ron Rivest&#xff09;、阿迪萨莫尔&#xff08;Adi Shamir&#xff09;和伦纳德阿德曼&#xff08;Leonard Adleman&#xff09;一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。 RSA是非…

dom截图的几种实现方式

前端要实现dom截图的功能&#xff0c;现在比较常用的是使用以下两个库 dom-to-image 使用svg技术实现html2canvas 使用canvas技术实现 如果想自己写一个dom截图的可以参考 dom-pointer 代码比较简单&#xff0c;非常适合拿来研究rasterizeHTML.js 目前rasterizeHTML.js已经被…

1231. 航班时间(恶心的输入处理 + 简单的数学)

题目如下&#xff1a; 题解 or 思路&#xff1a; 因为题目假设两次飞行时间是相同的&#xff0c;我们可以通过减法将时差消去。那么飞行时间就是: time1time22\frac{time_1 time2}{2}2time1​time2​ 题目的难点是处理输入&#xff0c;我们可以使用 sscanf 来进行处理&#x…

小程序开发经验分享(1)

账号搭建篇 1. 获取微信小程序的AppID 首先,我们需要拥有一个帐号,如果你能看到该文档,我们应当已经邀请并为你创建好一个帐号。注意不可直接使用服务号或订阅号的AppID。 利用提供的帐号,登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查…

MySQL高级 SQL优化【插入数据主键优化】

目录 1&#xff1a;SQL优化 1.1&#xff1a;插入数据 1.1.1&#xff1a;insert 1). 优化方案一&#xff08;批量插入数据) 2). 优化方案二&#xff08;手动控制事务&#xff09; 3). 优化方案三 &#xff08;主键顺序插入&#xff0c;性能要高于乱序插入。&#xff09; …

java应用集成HanLP进行中文自然语言分词详细完整案例以及demo

本文可以作为上一篇《mysql/mariadb 实现全文检索》的补充&#xff0c;实现对字符串分词的逻辑 什么是自然语言&#xff0c;什么是自然语言分词及例子 什么是自然语言 狭义地讲&#xff0c;利用计算机进行语言分析的研究是一门语言学与计算机科学的交叉学科&#xff0c;学术界…

CTFSHOW新手杯MISC部分WriteUp

引文 之前复现了CTFSHOW新人杯的WEB方向部分题目&#xff0c;今天就复现一下MISC为主的题目&#xff0c;可能有些读者不太明白MISC方向是什么意思&#xff0c;简单来说就是"杂项",包括&#xff1a;隐写&#xff0c;压缩包处理&#xff0c;流量分析&#xff0c;攻击取…

电容基础知识

电解电容负极有标识标有耐压值&#xff08;400V 450WV&#xff09; 容量 &#xff08;68UF&#xff09; 温度&#xff08;105摄氏度&#xff09;等 电容容量判断方法&#xff1a;直标法&#xff1a;上图&#xff0c;容量68微法&#xff0c;耐压值400V。数字表示法&#xff1a;方…

如何在公司审计中保持安全

如何在公司审计中保持安全 如今&#xff0c;财务弹性是决定您的公司能否在不确定时期适应和发展的主要属性之一。这可能令人很惊讶&#xff0c;但您的年度业务审计可以成为您提高业务敏捷性的秘密武器。它通过确定内部控制和财务报告的效果以及哪些流程改进应该在您的优先级列…

蓝桥杯Python练习题15-区间k大数查询

资源限制   内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述   给定一个序列&#xff0c;每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式   第一行包含一个数n&#xf…

黑马Hive+Spark离线数仓工业项目-任务流调度工具AirFlow(2)

Oracle与MySQL调度方法 目标&#xff1a;了解Oracle与MySQL的调度方法 实施 Oracle调度&#xff1a;参考《oracle任务调度详细操作文档.md》 - step1&#xff1a;本地安装Oracle客户端 - step2&#xff1a;安装AirFlow集成Oracle库 - step3&#xff1a;创建Oracle连接 - ste…