Vue组件学习

(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图 保姆式教程,教你如何利用python分析1979-2004年的太平洋地区的海温异常SSTA,并且绘制出空间模态和时间序列的图片。 阅读详情

一、什么是组件

  组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可; 组件化和模块化的不同:

  • 模块化: 是从代码逻辑的角度进行划分的;方便代码分层开发,保证每个功能模块的职能单一;

  • 组件化: 是从UI界面的角度进行划分的;前端的组件化,方便UI组件的重用

二、组件的创建

  • 创建方式1
var test_cx = Vue.extend({
    template: '<h1>创建组件</h1>'
});
Vue.component('testcx', test_cx);   //其中testXcx是组件名称
  • 方式1的简略写法
Vue.component('test-cx', Vue.extend({
    template: '<h2>创建组件</h2>'
}));
  • 方式2
Vue.component('test-cx', {
    template: '<h3>这是直接使用 Vue.component 创建出来的组件</h3>'
})
  • 方式3
<body>

    <div id="app">
        <test-cx></test-cx>
    </div>

    <template id="test">
        <h4>创建组件</h4>
    </template>

    <script>
        Vue.component('test-cx', {
            template: '#test'
        });

        var vm = new Vue({
            el: '#app',
            data: {},
            methods: {}
        });
    </script>

</body>

 渲染:

<!-- 有大写的要转成驼峰-->
<div id="app">
    <test-cx></test-cx>  <!--组件的名称-->
</div>

结果:

 

  •  创建私有组件
<body>

    <div id="app1">
        <test></test>
    </div>

    <template id="cx1">
        <div>
            <h3>我是私有组件</h3>
        </div>
    </template>

    <script>
        var vm = new Vue({
            el: '#app1',
            data: {
            },
            methods: {
            },
            // 定义实例内部私有组件的
            components: {
                test: {
                    template: '#cx1'
                }
            }
        })
    </script>

</body>

结果:

 

三、组件中的data

<body>

    <div id="app">
        <my></my>
    </div>

    <script>
        //组件中的data必须是一个有返回值的方法,和实例中的data使用不一样
        Vue.component('my', {
            template: '<h3>这是全局组件 --- {{msg}}</h3>',
            data: function () {
                return {
                    msg: '我是vue中的data----组件中的data必须有一个返回值,和实例中的data使用不一样'
                }
            }
        })
        var vm = new Vue({
            el: '#app',
            data: {
            },
          methods:{
            //组件方法
          }
        })
    </script>

</body>

结果:

 

四、使用components属性定义局部子组件

<body>

    <div id="app">
        <account>
            <login></login>
        </account>
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {},
            methods: {},
            components: { // 定义子组件
                account: { // account 组件
                    template: '<div><h1>这是Account组件{{name}}</h1><login></login></div>', // 在这里使用定义的子组件
                    components: { // 定义子组件的子组件
                        login: { // login 组件
                            template: "<h3>这是登录组件</h3>"
                        }
                    }
                }
            }
        });
    </script>

</body>

结果:

五、组件的切换

  • 使用component实现组件的切换
<body>

    <div id="app">
        <!-- 组件需要加上单引号,不然应该是以字符串输出了-->
        <a href="" @click.prevent="comName='login'">登录</a>
        <a href="" @click.prevent="comName='register'">注册</a>
        <!-- component 是一个占位符, :is 属性,可以用来指定要展示的组件的名称 -->
        <component :is="comName"></component>
    </div>

    <script>
        Vue.component('login', {
            template: '<h3>登录组件</h3>'
        })
        Vue.component('register', {
            template: '<h3>注册组件</h3>'
        })
        var vm = new Vue({
            el: '#app',
            data: {
                // 当前 component 中的 :is 绑定的组件的名称
                comName: 'login'
            }
        })
    </script>

</body>
  • 使用v-if和v-else实现组件的切换
<body>
    <div id="app">
        <a href="" @click.prevent="flag=true">登录</a>
        <a href="" @click.prevent="flag=false">注册</a>
        <login v-if="flag"></login>
        <register v-else="flag"></register>
    </div>
    <script>
        Vue.component('login', {
            template: '<h3>登录组件</h3>'
        })
        Vue.component('register', {
            template: '<h3>注册组件</h3>'
        })
        var vm = new Vue({
            el: '#app',
            data: {
                flag: false
            }
        })
    </script>
</body>

结果:

  

注意:这里需要加上.prevent,防止预设行为,不然切换到注册的一瞬间就又切换回来了。

 

六、父子组件的传值

  •  父组件 传值 给子组件
<body>
    <div id="app">
        <!-- 父传子可以通过 v-bind 属性绑定方式传值,简写为 : -->
        <yk :parentmsg="msg"></yk>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '我是父组件的数据'
            },
            methods: {
            },
            components: {
                //子组件是无法直接获取父组件中的data上的数据和methods 中的方法
                yk: {
                    template: '<h3 @click="change">我是子组件 --- {{parentmsg}}</h3>',
                    // props 中的数据都是父组件传来的,都是只读的,无法重新赋值
                    props: ['parentmsg'],
                    methods: {
                        //即使强制修改,VUE会报错
                        change() {
                            this.parentmsg = '被修改了'
                        }
                    }
                }
            }
        })
    </script>
</body>
  • 父组件 传方法 给子组件
<body>

    <div id="app">
        <!-- 父组件向子组件传递方法,使用的是事件绑定机制v-on,简写为@ -->
        <!-- 当我们自定义了一个事件属性之后,那么子组件就能够通过某些方式来调用传递进去的方法了 -->
        <!-- 如果show()带括号就是将调用完show的方法的结果返回给func,不带括号的就将show的方法给func-->
        <com2 @func="show"></com2>
    </div>

    <template id="tmpl">
        <div>
            <h1>这是 子组件</h1>
            <input type="button" value="这是子组件中的按钮 - 点击它,触发父组件传递过来的func方法" @click="myclick">
        </div>
    </template>

    <script>
        var com2 = {
            template: '#tmpl',
            methods: {
                myclick() {
                  this.$emit('func')
                }
            }
        }
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '我是父组件的数据'
            },
            methods: {
                show() {
                    console.log('调用了父组件身上的 show 方法: --- ');
                }
            },
            //加载子组件
            components: {
                com2
            }
        })
    </script>

</body>

结果:

  • 子组件 传值 给父组件(子组件需要使用父组件的方法传值)
<body>
    <div id="app">
        <com2 @func="show"></com2>
    </div>
    <template id="tmpl">
        <div>
            <h1>这是 子组件</h1>
            <input type="button" value="这是子组件中的按钮 - 点击它,触发 父组件传递过来的 func 方法" @click="myclick">
        </div>
    </template>
    <script>
        var com2 = {
            template: '#tmpl',
            data() {
                return {
                    sonmsg: { name: '张三', age: 16 }
                }
            },
            methods: {
                myclick() {
                    //调用父组件的方法并且传值给组件
                    // this.$emit('func', 123)
                    //传对象
                    this.$emit('func', this.sonmsg)
                }
            }
        }
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '我是父组件的数据'
            },
            methods: {
                show(data) {
                    //获取子组件传来的值
                    // console.log('调用了父组件身上的 show 方法: ---获取子组件传的值 ' + data);
                    //获取子组件传的对象
                    this.msg = data
                    console.log("使用子组件的值 " + this.msg.name + " " + this.msg.age);
                }
            },
            //加载组件
            components: {
                com2
            }
        })
    </script>

</body>

结果:

 

七、使用ref获取组件和DOM元素

  vue不推荐直接操作dom元素 

<body>
    <div id="app">
        <input type="button" value="获取" @click="getElement" ref="mybtn">
        <h3 ref="myH3"> 学习使用ref获取组件和DOM元素</h3>
        <hr>
        <!-- 组件也是可以通过ref引用的 -->
        <login ref="mylogin"></login>
    </div>
    <script>
        var login = {
            template: '<h1>登录组件</h1>',
            data() {
                return {
                    msg: '我是子组件的数据'
                }
            },
            methods: {
                show() {
                    console.log('调用了子组件的方法')
                }
            }
        }
        var vm = new Vue({
            el: '#app',
            data: {
 
            },
            methods: {
                getElement() {
                    //获取dom元素数据
                    console.log(this.$refs.myH3.innerText)
                    //通过ref调用子组件的数据
                    console.log(this.$refs.mylogin.msg);
                    //通过ref调用子组件的方法
                    this.$refs.mylogin.show()
                }
            },
            components: {
                login
            }
        })
    </script>
</body>

结果:

 

八、关于vue中的 $emit 和 $on

Event.$emit('msg',this.msg);      
//发送数据,第一个参数是发送数据的名称,接收时还用这个名字接收,第二个参数是这个数据现在的位置;

Event.$on('msg',function(msg){  
//接收数据,第一个参数是数据的名字,与发送时的名字对应,第二个参数是一个方法,要对数据的操作

 

 

 

 

 

 

 

汇川EASY系列之以太网通讯(套接字socket做从站) 汇川EASY系列的以太网通讯中的Socket字通讯,不能使用配置的方式实现,只能通过指令完成,本文将详细说明 阅读详情

相关推荐

UVM仿真卡住了?别慌!手把手教你定位并解决PH_TIMEOUT超时错误

本文详细解析了UVM仿真中常见的PH_TIMEOUT超时错误,提供了从错误诊断到解决方案的完整指南。通过理解错误机制、分析调试技巧和常见问题场景,帮助验证工程师快速定位并解决这一棘手问题,同时分享了预防措施与最佳实践,提升仿真效率。

weixin_28683065的博客 370

vue动态渲染多个组件(根据json数据或者其他的对象,来判定到底渲染哪个组件)

vue动态渲染多个组件,这里指的是,根据json数据或者其他的对象,来判定到底渲染哪个组件。这个是核心,将整个文件夹下的所有组件都暴漏出去。每个组件中的name属性一定要设置好。

无简介!! 1371

[模型部署]-[LLM]昇腾部署Qwen3-Coder-30B-A3B-Instruct

摘要:本文介绍了在Ascend NPU上部署Qwen3-Coder-30B-A3B-Instruct大模型的实践过程。通过vLLM-Ascend框架,详细说明了环境准备(CANN 8.1、PyTorch-NPU 2.5.1等)、模型下载、容器启动及服务部署步骤,包括vLLM服务的启动参数配置和接口测试方法。测试结果显示在当前2卡910B3配置下性能表现仅为8token/s(1并发),并指出流式调用时存在无法输出usage信息的问题。该方案为Ascend平台私有化部署大模型推理服务提供了参考实现。

1672

vue学习六:vue组件

什么是组件 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可; 组件化和模块化的不同 模块化是从代码逻辑的角度进行划分的;方便代码分层开发,保证每个功能模块的职能单一; 组件化是从UI界面的角度进行划分的;前端的组件化,方便UI组件的重用; 全局组件定义的三种方式 &lt;div id="...

zerobaek的博客 293

戴尔PowerEdge服务器R450 RAID配置步骤

戴尔PowerEdge服务器R450 RAID配置步骤

且听风呤tmj的博客 6912

大陆毫米波雷达ARS408-21xx实战:从零搭建ROS环境下的目标检测与可视化

本文详细介绍了大陆毫米波雷达ARS408-21xx在ROS环境下的实战部署全流程。从硬件连接、CAN总线配置,到ROS驱动节点开发、CAN报文解析,再到RViz三维可视化实现,提供了完整的代码示例与调试技巧,帮助开发者快速搭建毫米波雷达目标检测与可视化系统。

open4的博客 635

vue进阶内容总结--组件注册(一)

组件注册 组件名 在注册一个组件的时候,我们始终需要给它起一个名字。比如在全局注册的时候我们已经看到了: Vue.component('my-component-name',{...}) 该组件名就是 Vue.component 的第一个参数(my-component-name)。 你给予组件的名字可能依赖于你打算拿它来做什么。当直接在 DOM 中使用一个组件(而不是在字符...

zzk00007的博客 402

【面试系列】数据分析师高频面试题及详细解答

本文为数据分析师岗位提供了详尽的面试题库和解答,涵盖初级、中级和高级三个层次。初级面试题涉及基本的数据处理和统计分析知识,如SQL查询、数据清理和基础统计概念。中级面试题则重点考察数据可视化、复杂查询和数据建模等技能。高级面试题则深入探讨高级统计方法、大数据处理和高级分析工具的使用。通过这些问题和解答,候选人可以全面了解数据分析师岗位所需的技能,帮助其更好地准备面试。常考知识点总结部分则系统归纳了数据分析师岗位的关键技能领域。

在路上的专栏 5230

Vue中的组件基础知识

创建组件的方式 // 1.1使用Vue.extend 来创建全局的Vue组件 var com1 = Vue.extend({ // 通过template属性,指定了组件要展示的HTML结构 template:'<h3>这是使用Vue.extend 创建的组件</h3>' }) ...

WaNgLu:)的博客 340

PyTorch深度学习实战(36)——Pix2Pix详解与实现

Pix2Pix 是基于生成对抗网络的图像转换框架,能够将输入图像转换为与之对应的输出图像,能够广泛用于图像到图像转换的任务,如风格转换、图像修复、语义标签到图像的转换等。Pix2Pix 的核心思想是通过对抗训练将输入图像和目标输出图像进行配对,使生成网络可以学习到输入图像到输出图像的映射关系。在本节中,将学习使用 Pix2Pix 根据给定轮廓生成图像。

盼小辉丶的博客 1万+

OpenClaw人人养虾:发现与传输

客户端需要先"发现"Gateway 的地址和端口,才能建立连接。OpenClaw 支持多种发现(Discovery)和传输(Transport)机制。

王国平的博客 572

Vue组件

定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可; 组件化和模块化的不同: 模块化: 是从代码逻辑的角度进行划分的;方便代码分层开发,保证每个功能模块的职能单一; 组件化: 是从UI界面的角度进行划分的;前端的组件化,方便UI组件的重用; 如果要使用组件,直接,把组件的...

北枫林 443

PLSQL Developer安装详细步骤

一、下载安装PLSQL Developer(plsql安装百度也有步骤) 官网下载地址:https://www.allroundautomations.com/registered-plsqldev/ 1、网上自己下载适合自己电脑的安装包(32或64),并解压。 2、打开解压的文件夹,得到以下三个文件(分别是汉化工具,PLSQL安装包、激活码),双击安装,如下图: 3、安装界面,点击next,进入下一步,如图: 4、安装协议界面,此处必须选择“I accept the terms in

Gorden的博客 11万+

vuejs学习总结(六)——组件化

这里写自定义目录标题组件化开发概述vue组件化思想注册组件的基本步骤 组件化开发 概述 我们人类在面对复杂问题的处理方法: 任何一个人处理信息的逻辑能力都是有限的, 所以,当面对一个非常复杂的问题时,我们不他可能一次性搞定一大堆内容 但是,我们人类有一种能力,就是将问题进行拆分,如果我们将一个复杂的问题,拆分成很多个可以处理的小问题,再将其放入整体中,我们会发现大的问题也可以迎刃而解。 同理,组件...

l118 323

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

vuejs学习之组件注册

官方网站 https://cn.vuejs.org/ 为了能在模板中使用,这些组件必须先注册以便 Vue 能够识别。这里有两种组件的注册类型:全局注册和局部注册。至此,我们的组件都只是通过 Vue.component 全局注册的: Vue.component('my-component-name', { // ... options ... }) 全局注册的组件可以用在其被注册之后的任何 (...

qq_36836277的博客 427

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

教女朋友学习 vue中的组件

这篇博客对Vue中组件的基本知识做了详细的介绍,并有完整的示例。

扬帆向海的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

vue组件获取props_学习 vue 的组件 props 参数类型【15】

学习要点:1.多种类型本节课我们来开始学习 Vue 的组件 props 参数类型。一.组件的 props 类型1. 从父组件给子组件通信,子组件不单单可以得到字符串类型,还可以是其它类型;"app"> :v-type="text"> color="green"/> :v-type="arr"> color="green"/> :v-type...

weixin_35979889的博客 861

vue.js组件开发怎么学习

学习Vue.js组件开发需要耐心和不断的实践。通过掌握基础知识、入门组件开发、进阶学习和实践经验积累等步骤,你可以逐步提高自己的Vue.js组件开发能力。

Program Han 882

Vue学习笔记|Vue组件

Vue组件

笔记|思路|总结 234

Vue 学习笔记 - 深入了解组件

组件注册、Prop传值、slot插槽、动态组件、异步组件

灵台方寸山斜月三星洞 1122

Vue入门学习(组件化开发)

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽。

2401_84093973的博客 702

Vuejs学习(三)组件开发

1.全局组件注册2.全局组件使用 3.组件可以复用,复用的组件是独立的 4.template中的标签元素要有根元素 5.可利用模板字符串即倒引号的方式提高template中的代码可读性 6.组件注册中的data是个函数形式的,如图一所示 7.若组件用驼峰式命名则只能在template中使用,而不能在<html></html>中使用,若一定要使用则变成短横线命名即可 若使用短...

老简单题 185

Vue的学习 —— <vue组件>

props: {自定义属性A: 类型,自定义属性B: 类型,……

2301_78038072的博客 3717

Vue3组件学习使用

前面我们已经构建了一个项目。现在我们在那个项目里面学习组件的用法。

qq_2511276124的博客 1308

Vuejs学习中组件的重要选项

组件的重要选项 data html: <template> <div>{{ a }}</div> </template> js: <script> newVue({ data: { a:1, b: [] } }) </script> vue的所有数据都是放在data里面,data是个对象,而且必须是函数,这是官方特意交代的。 所

FormatRain的博客 234

探索学习 Vue 组件篇

从对组件的初步认识,非单文件组件到单文件组件学习以及中间的各种关系的理解,深入的了解组件

pymxb1991的专栏 242
上一篇: localStorage 本地储存
下一篇: Vue学习:路由
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值