首页 >web前端 >前端问答 >vue组件要注意什么

vue组件要注意什么

青灯夜游
青灯夜游原创
2021-12-23 18:32:572322浏览

vue组件要注意的事项:1、组件的template模板必须有且只有一个根节点;2、组件的data选项必须是一个函数,且函数体返回一个对象;3、子组件不能直接修改父组件传递过来的值,否则会有一个警告。

vue组件要注意什么

本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

Vue 组件化注意事项

  • 组件可以理解为特殊的 Vue 实例,管理自己的 template 模板。

  • 组件的 template 必须有且只有一个根节点。
  • 组件的 data 选项必须是一个函数,且函数体返回一个对象。

  • 子组件不能直接修改父组件传递过来的值。

    父组件通过属性的形势可以随意给子组件传递值,但子组件不能修改父组件的数据; 否则会有一个警告,提示不要直接修改父组件传递过来的值。

    1.png

组件与组件之间是相互独立的,可以配置自己的一些选项资源 data 、 methods 、 computed 等等。

思想:组件自己管理自己,不影响别人。

组件示例

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>全局注册 - 王佳伟</title>
</head>

<body>


    <div id="app">
        <!-- 引用组件时必须使用横线分割符 -->
        <component-a></component-a>
        <component-a></component-a>
        <component-b></component-b>
    </div>

    <script src="./node_modules/vue/dist/vue.js"></script>

    <script>
        // 全局注册组件
        /***
         * 1.组件命名:驼峰、横线分隔符命名方式
         * 2.使用组件:使用组件时必须采用横线分隔符的方式进行引用
         * 
         * 组件可以理解为就是特殊的Vue实例,不需要手动的实例化而已,它用于管理自己的模板。
         */
        Vue.component(&#39;component-a&#39;, {
            // template选项,指定组件的模板代码
            template: &#39;<div><h1>头部组件  --  {{name}}</h1></div>&#39;,
            data: function () {  // 在组件中,data选项必须是一个函数
                return {
                    name: &#39;全局组件&#39;
                }
            }
        })

        // 定义局部组件对象
        const ComponentB = {
            template: &#39;<div>这是 {{name}} </div>&#39;,
            data() {
                return {
                    name: &#39;局部组件&#39;
                }
            },
        }
        new Vue({
            el: &#39;#app&#39;,
            components: {
                // key:value   ;  key为组件名,value是组件对象。
                &#39;component-b&#39;: ComponentB
            },
            data: {

            }
        })
    </script>

</body>

</html>

【相关推荐:《vue.js教程》】

以上是vue组件要注意什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn