码迷,mamicode.com
首页 > 其他好文 > 详细

Vue 组件与复用

时间:2017-12-18 14:28:40      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:复用   java   mil   div   lang   counter   var   body   ++   

(1)全局注册

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
        <div id="app">
            <my-component>

            </my-component>
        </div>
        <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
        <script type="text/javascript">
            //示例前注册
            Vue.component(my-component, {
                //DOM结构必须被元素包含
                template: <div>组件内容</div>
            })
            new Vue({
                el: "#app"
            })
        </script>
    </body>

</html>

 

(2)局部注册

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
        <div id="app">
            <my-component>

            </my-component>
        </div>
        <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
        <script type="text/javascript">
            var Child = {
                template: <div>组件内容</div>
            }
            new Vue({
                el: "#app",
                components: {
                    my-component: Child
                }
            })
        </script>
    </body>

</html>

(3)is挂载组件

table、ul、ol、select这些标签会限制其内的元素,这时可以使用is来挂载组件

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
        <div id="app">
            <table>
                <tbody is=‘my-component‘>
                </tbody>
            </table>
        </div>
        <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
        <script type="text/javascript">
            //示例前注册
            Vue.component(my-component, {
                //DOM结构必须被元素包含
                template: <div>组件内容</div>
            })
            new Vue({
                el: "#app"
            })
        </script>
    </body>

</html>

(4)组件也可以有data,method,computed等属性。但是data是函数,数据需要return出去。

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
        <div id="app">
            <my-component></my-component>
        </div>
        <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
        <script type="text/javascript">
            //示例前注册
            Vue.component(my-component, {
                //DOM结构必须被元素包含
                template: <div>{{message}}</div>,
                data: function() {
                    return {
                        message: 组件内容
                    }
                }
            })
            new Vue({
                el: "#app"
            })
        </script>
    </body>

</html>

(5)解决多个组件之间数据共享问题

给组件返回一个新的data对象

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
        <div id="app">
            <my-component></my-component>
            <my-component></my-component>
            <my-component></my-component>
            
        </div>
        <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
        <script type="text/javascript">
            //示例前注册
            Vue.component(my-component, {
                //DOM结构必须被元素包含
                template: <button @click="counter++">{{counter}}</button>,
                data: function() {
                    return {
                        counter: 0
                    }
                }
            })
            new Vue({
                el: "#app"
            })
        </script>
    </body>

</html>

 

Vue 组件与复用

标签:复用   java   mil   div   lang   counter   var   body   ++   

原文地址:http://www.cnblogs.com/mengfangui/p/8056865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!