VUE2.0学习记录——组件使用的细节点

1.在html5的规范里,要求tbody里必须写tr,导致浏览器解析row的时候出问题,此时可借助is属性来解决,ul li select option同理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE中组件使用的细节点</title>
</head>
<body>
<div id="app">
    <table>
        <tbody>
            <row></row>
            <row></row>
            <row></row>
        </tbody>
    </table>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    Vue.component('row',{
        template: '<tr><td>this is a row</td></tr>'
    });
    var app = new Vue({
        el: '#app'
    });
</script>
</html>

2.在子组件中定义data时,data必须是个函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE中组件使用的细节点</title>
</head>
<body>
<div id="app">
    <table>
        <tbody>
            <tr is="row"></tr>
            <tr is="row"></tr>
            <tr is="row"></tr>
        </tbody>
    </table>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    Vue.component('row',{
        data: function () {
            return {
                content: 'this is content'
            }
        },
        template: '<tr><td>{{content}}</td></tr>'
    });
    var app = new Vue({
        el: '#app'
    });
</script>
</html>

3.Vue中操作DOM,当@ref在标签上时,获取到的就是dom元素,在组件上时获取到的就是组件对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VUE中组件使用的细节点</title>
</head>
<body>
<div id="app">
    <div ref="helloDiv">hello</div>
    <counter ref="counter1" @change="handleChange"></counter>
    <counter ref="counter2" @change="handleChange"></counter>
    <div>{{total}}</div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    Vue.component('counter',{
        template: '<div @click="handleClick">{{number}}</div>',
        data: function () {
            return {
                number: 0
            }
        },
        methods: {
            handleClick: function (){
                this.number++;
                this.$emit('change');
            }
        }
    });
    var app = new Vue({
        el: '#app',
        methods: {
            handleChange: function () {
                console.log(this.$refs.helloDiv.innerHTML);
                this.total = this.$refs.counter1.number + this.$refs.counter2.number;
            }
        },
        data: {
            total: 0
        }
    });
</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值