Vue.js学习详细课程系列--共32节(6 / 6)

简介: Vue.js学习详细课程系列--共32节(6 / 6)

29. 组件:参数验证

知识点
  • props:组件参数验证语法
组件的数据

为组件中接受到的变量进行逻辑验证。

综合例
<div id="myApp">
    <h1>身世之谜</h1>
    <show-member-info name="koma" :age="25" :detail="{address:'earth', language:'世界语'}"></show-member-info>
</div>
<script>
    Vue.component('show-member-info', {
        props: {
            name: {
                type: String,
                required: true,
            },
            age: {
                type: Number,
                validator: function (value) {
                    return value >= 0 && value <= 130;
                }                
            },
            detail: {
                type: Object,
                default: function() {
                    return {
                        address: 'US',
                        language: 'English',
                    };
                }
            },
        },
        template: '<div>姓名:{{this.name}}<br/>' 
            + '年龄:{{this.age}}岁<br/>'
            + '地址:{{this.detail.address}}<br/>'
            + '语言:{{this.detail.language}} </div>',
    });
    var myApp = new Vue({
        el: '#myApp', 
    });
</script>

30. 组件:事件传递

知识点
  • v-on
  • $emit
v-on

侦听组件事件,当组件触发事件后进行事件处理。

$emit

触发事件,并将数据提交给事件侦听者。

综合例
<div id="myApp">
    <h1>人生加法</h1>
    <add-method :a="6" :b="12" v-on:add_event="getAddResult"></add-method>
    <hr/>
    <h3>{{result}}</h3>
</div>
<script>
    Vue.component('add-method', {
        props: ['a', 'b'],
        template: '<div><button v-on:click="add">加吧</button></div>',
        methods: {
            add: function(){
                var value = 0;
                value = this.a + this.b;
                this.$emit('add_event', {
                    result:value
                });
            }
        },
    });
    var myApp = new Vue({
        el: '#myApp', 
        data: {
            result: 0
        },
        methods: {
            getAddResult: function(pval){
                this.result = pval.result;
            }
        },
    });
</script>

31. 组件:slot插槽

知识点
  • slot
slot

slot是父组件与子组件的通讯方式,可以将父组件的内容显示在子组件当中。

综合例
<div id="myApp">
    <say-to pname="koma">
        你的视频做的太差了。
    </say-to>
    <say-to pname="mike">
        你千万不要学koma。
    </say-to>
    <say-to pname="john">
        你教教他们两个吧。
    </say-to>
</div>
<script>
    Vue.component('say-to', {
        props: ['pname'],
        template: '<div>'
            + '你好,<strong>{{pname}}</strong>!'
            + '<slot></slot>'
            + '</div>',
    });
    var myApp = new Vue({
        el: '#myApp',
    });
</script>

32. 组件:组合slot

知识点
  • slot命名
slot命名

在子组件中通过为多个slot进行命名,来接受父组件的不同内容的数据。

综合例
<div id="myApp">
    <nba-all-stars c="奥尼尔" pf="加内特">
        <span slot="sf">皮尔斯</span>
        <span slot="sg">雷阿伦</span>
        <span slot="pg">隆多</span>
    </nba-all-stars>
</div>
<script>
    Vue.component('nba-all-stars', {
        props: ['c', 'pf'],
        template: '<div>'
            + '<div>中锋:{{c}}</div>'
            + '<div>大前:{{pf}}</div>'
            + '<div>小前:<slot name="sf"></slot></div>'
            + '<div>分卫:<slot name="sg"></slot></div>'
            + '<div>控卫:<slot name="pg"></slot></div>'
            + '</div>',
    });
    var myApp = new Vue({
        el: '#myApp',
    });
</script>


目录
相关文章
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
48 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
34 1
|
2月前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
40 1
vue学习第四章
|
2月前
|
JavaScript 前端开发 算法
vue学习第7章(循环)
欢迎来到瑞雨溪的博客,一名热爱JavaScript和Vue的大一学生。本文介绍了Vue中的v-for指令,包括遍历数组和对象、使用key以及数组的响应式方法等内容,并附有综合练习实例。关注我,将持续更新更多优质文章!🎉🎉🎉
32 1
vue学习第7章(循环)
|
2月前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
35 1
vue学习第九章(v-model)
|
2月前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
48 1
vue学习第十章(组件开发)
|
2月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
34 2
|
2月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
56 1
|
2月前
|
JavaScript 前端开发
vue学习第五章
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,正向全栈进发。如果你从我的文章中受益,欢迎关注,我将持续分享更多优质内容。你的支持是我最大的动力!🎉🎉🎉
30 1
|
2月前
|
JavaScript 前端开发
vue学习第六章(条件显示)
欢迎来到我的博客!我是瑞雨溪,一名自学前端两年半的大一学生,擅长JavaScript与Vue,正向全栈进发。本篇介绍v-if、v-else、v-elseif及v-show的使用方法,附带实例演示。希望我的分享能帮到你,欢迎关注,持续更新中!🎉🎉🎉
31 1