Vue2.0入门学习笔记(四):实例和内置组件

目录

外部技术引入

实例方法

实例事件

内置组件slot


源码地址:https://gitee.com/xieweikun/vue-demo

外部技术引入

可以在mounted中引入其他技术,例如jquery

<script type="text/javascript" src="../assets/js/jquery-1.10.2.min.js"></script>
<div id="app"></div>
<script type="text/javascript">
    var app = new Vue({
        el: '#app',
        mounted: function () {
            $("#app").html('我是jquery');
        }
    });
</script>

实例方法

<div id="app"></div>
<p><button onclick="destroy()">销毁</button></p>
<p><button onclick="reload()">刷新</button></p>
<p><button onclick="tick()">更改数据</button></p>
<script type="text/javascript">
    var xwk = Vue.extend({
        template: `<p>{{message}}</p>`,
        data: function () {
            return {
                message: 'Hello xwk'
            }
        },
        mounted: function () {
            console.log("mounted 被创建")
        },
        destroyed: function () {
            console.log("destroyed销毁")
        },
        updated: function () {
            console.log("updated更新之后")
        }
    })
    var vm = new xwk().$mount("#app");
    function destroy() {
        vm.$destroy();
    }
    function reload() {
        vm.$forceUpdate();
    }
    function tick() {
        vm.message = "update message info";
        vm.$nextTick(function () {
            console.log("message更新后我被调用了");
        })
    }
</script>

实例事件

<div id="app"><p>{{count}}</p></div>
<p><button onclick="reduce()">reduce</button></p>
<p><button onclick="reduceOnce()">reduceOnce</button></p>
<p><button onclick="off()">off</button></p>
<script type="text/javascript">
    var app = new Vue({
        el: '#app',
        data: {
            count: 0
        }
    })
    app.$on('reduce', function () {
        console.log("执行了reduce");
        this.count--;
    })
    app.$once('reduceOnce', function () {
        console.log("执行了reduceOnce");
        this.count--;
    })
    function reduce() {
        app.$emit('reduce');
    }
    function reduceOnce() {
        app.$emit('reduceOnce');
    }
    function off() {
        app.$off('reduce');
    }
</script>

内置组件slot

<div id="app">
    <panda>
        <span slot="bolgUrl">{{pandaData.bolgUrl}}</span>
        <span slot="netName">{{pandaData.netName}}</span>
        <span slot="skill">{{pandaData.skill}}</span>
    </panda>
</div>
<template id="tep">
    <div>
        <p>博客地址:<slot name="bolgUrl"></slot></p>
        <p>网名:<slot name="netName"></slot></p>
        <p>技术类型:<slot name="skill"></slot></p>
    </div>
</template>
<script type="text/javascript">
    var panda = {
        template: '#tep'
    }
    var app = new Vue({
        el: '#app',
        data: {
            pandaData: {
                bolgUrl: 'http://www.baidu.com',
                netName: '百度',
                skill: "web前端"
            }
        },
        components: {
            'panda': panda
        }
    })
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术宅老谢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值