【愚公系列】2022年04月 Python教学课程 78-VUE组件中的数据和属性

简介: 【愚公系列】2022年04月 Python教学课程 78-VUE组件中的数据和属性

一、数据的绑定

1.数据绑定

在vue中数据通过data属性进行绑定,如下:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{name}}
    </div>
 <script>
    new Vue({
        el: '#app',
        data: {
            name:'python'
        }
    })
    </script>
</body>
</html>

二、组件的使用

1.全局组件和局部组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        <zujian_all></zujian_all>
    </div>
 <script>
    // 局部组件注册,定义局部组件
    var zujian_a={
        template:'<div>局部组件1</div>',
     };
    // 全局组件
    Vue.component(
        'zujian_all',
        {   // 在全局中使用绑定的数据 {{name}}
            template:'<div>全局组件  <zujian_a></zujian_a> {{name}} </div>',
            // components 将局部组件注册到全局组件中
                components:{
                zujian_a,
            },
            // data属性指定绑定的数据内容,可以在当前的组件中进行使用
            data:function(){
                return {name:'python'}
            }
           }
    )
    new Vue({
        el: '#app',
    })
    </script>
</body>
</html>

三、组件传值

父组件给子组件传值,组件中通过props属性传递数据,如下:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        <zujian_all></zujian_all>
    </div>
 <script>
    // 局部组件注册,定义局部组件
    var zujian_a={
        template:'<div>局部组件1 {{pos}} </div>',
        // 在子组件中通过props属性定义接受值的名称
        props:['pos']
     };
    // 全局组件
    Vue.component(
        'zujian_all',
        {   // 在全局组件中调用子组件时,通过v-bind指定子组件中pos接受父组件中的哪个值
            template:'<div>全局组件  <zujian_a v-bind:pos="name"></zujian_a>  </div>',
            // components 将局部组件注册到全局组件中
                components:{
                zujian_a,
            },
            // data属性指定绑定的数据内容,可以在当前的组件中进行使用
            data:function(){
                return {name:'python'}
            }
           }
    )
    new Vue({
        el: '#app',
    })
    </script>
</body>
</html>

子组件给父组件传值,通过$emi将数据传递个父组件


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello Ming</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
    <div id='app'>
        <zujian_all></zujian_all>
    </div>
    <script>
        var zujian_a={ 
            template:'<div>  局部组件A  <button v-on:click="isupload"> 上传</button>  </div>',
            methods:{
                isupload:function(){
                    this.$emit('isListen','hello') // 子元素上的点击事件成功后,通过 $emit 将事件和数据传递给父组件
                }
            }
        }
        Vue.component('zujian_all',{
            template:'<div>  全局组件   <zujian_a v-on:isListen="isShow"></zujian_a> </div>',
            components:{
                zujian_a
            },
            methods:{
                isShow:function(data){
                    alert(data)  //data参数接受子组件传递的值
                }
            }
        })
        new Vue({
            el:'#app'
        })
    </script>
</body>
</html>

相关文章
|
8月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
622 0
|
9月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
768 2
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
1200 0
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1493 4
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
9月前
|
存储 JavaScript 关系型数据库
基于python+vue的居家办公系统的设计与实现
本居家办公系统基于B/S架构,采用Python语言及Django框架开发,结合MySQL数据库和Vue.js前端技术,实现家具销售库存的科学化、规范化管理。系统旨在提升办公效率,降低数据错误率,优化信息管理流程,适应多行业信息化发展需求,具有良好的扩展性与实用性。
|
9月前
|
JavaScript 关系型数据库 MySQL
基于python+vue的贫困生资助系统
本文介绍了餐厅点餐系统的开发环境与核心技术,涵盖Python语言、MySQL数据库、Django框架及Vue.js前端技术,详细说明了各项技术的应用与优势,助力系统高效开发与稳定运行。
|
9月前
|
存储 关系型数据库 MySQL
基于python+vue的商城购物系统
本文介绍了电子商务的发展背景及研究现状,分析了当前电商市场的挑战与机遇,提出了自建电商平台的优势,旨在通过创新设计与技术实现(如Python、Django、B/S架构等),构建一个高效、低成本、用户导向的电商系统,以提升企业竞争力。
|
10月前
|
Python
解决Python中AttributeError:'image'对象缺少属性'read_file'的问题策略。
通过上述策略综合考虑,您将能够定位问题并确定如何解决它。记住,Python社区很庞大,也很乐于帮助解决问题,因此不要害怕在求助时提供尽可能多的上下文和您已经尝试过的解决方案。
268 0
|
JavaScript 前端开发 UED
Vue 表情包输入组件的实现代码:支持自定义表情库、快捷键发送和输入框联动的聊天表情解决方案
本文详细介绍了在 Vue 项目中实现一个功能完善、交互友好的表情包输入组件的方法,并提供了具体的应用实例。组件设计包含表情分类展示、响应式布局、与输入框的交互及样式定制等功能。通过核心技术实现,如将表情插入输入框光标位置和点击外部关闭选择器,确保用户体验流畅。同时探讨了性能优化策略,如懒加载和虚拟滚动,以及扩展性方案,如自定义主题和国际化支持。最终,展示了如何在聊天界面中集成该组件,为用户提供丰富的表情输入体验。
912 8

推荐镜像

更多