首页 > 语言 > JavaScript > 正文

详解Vue 全局变量,局部变量

2024-05-06 15:40:28
字体:
来源:转载
供稿:网友

局组件和局部组件

1.先定义组件   Vue.component('组件名', { 组件模板对象 })

注意: 组件名不要使用原生的标签名, 若组件名定义时用的是驼峰命名法, 则调用时用中划线分割后小写
例如: 组件-->mtText   使用时-->   <my-text></my-text>

2.配置组件的模板  注意: 组件的模板内容有且只有一个根元素

3.在视图层里调用 ,用双标签

4.组件是一个独立的作用域, 也可以看成一个特殊的vue实例, 可以有data, methods,computed等等

注意: 组件的data是函数, 函数中需要返回一个对象作为组件的data

全局组件案例

<body><div id="app">  <my-component></my-component></div><script src="lib/vue-2.4.0.js"></script><script>//全局组件  Vue.component('myComponent',{    //1.组件的内容/模板    template: '<div><div>头部组件</div><h1 @click="fn">呵呵{{msg}}</h1></div>',    data(){      return {        msg:'hello,组件'      }    },    methods:{      fn(){        console.log(this.msg);      }    }  })  let vm = new Vue({    el:"#app",    data:{    },    methods:{    },  })</script></body>

局部组件案例

<body><div id="app">  <my-component></my-component>  <my-test></my-test></div><template id="box1">  <h1>haha</h1></template><template id="box2">  <div>    <ul>      <li v-for="item in arr">        {{ item }}      </li>    </ul>  </div></template><script src="lib/vue-2.4.0.js"></script><script>let vm = new Vue({    el:"#app",    data:{    },    methods:{    },    //局部子组件    components:{      // 组件名: {配置项}      "myComponent":{        template:'#box1',        data(){          return {            msg:"哈哈"          }        }      },      "myTest":{        template:"#box2",        data(){          return {            arr:[1,2,3,4]          }        }      }    }  })</script></body>

组件切换:法一

<body><div id="app">  <a href="" @click.prevent=" rel="external nofollow" rel="external nofollow" flag=true">登录</a>  <a href="" @click.prevent=" rel="external nofollow" rel="external nofollow" flag=false">注册</a>  <login v-if="flag"></login>  <register v-else="flag"></register></div><script src="lib/vue-2.4.0.js"></script><script>  Vue.component("login",{    template:"<h1>登录组件</h1>"  })  Vue.component("register",{    template:"<h1>注册组件</h1>"  })  let vm = new Vue({    el:"#app",    data:{      flag: false    },    methods:{    },  })</script></body>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选