前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue组件常用的几种书写方式

vue组件常用的几种书写方式

作者头像
javascript艺术
发布2021-05-28 14:02:21
3210
发布2021-05-28 14:02:21
举报
文章被收录于专栏:javascript艺术javascript艺术

vue组件常用的几种书写方式

vue组件实现Tab切换功能

代码语言:javascript
复制
<!DOCTYPE html><html><head>
   <meta charset="utf-8"/>
   <title>Demo</title>
   <script src="https://cdn.bootcss.com/vue/2.4.1/vue.min.js"></script></head><body>   <div id="app">
       <div :is="tabShow"></div>
       <button @click="tab('A')">tab1</button>
       <button @click="tab('B')">tab2</button>
       <button @click="tab('C')">tab3</button>
       <button @click="tab('D')">tab4</button>
   </div>
     
   <script>     A = {        template:`<h1>我是第一一一个tab</h1>`}
     B = {        template:`<h1>我是第二二二个tab</h1>`}
     C = {        template:`<h1>我是第三三三个tab</h1>`}
     D = {        template:`<h1>我是第四四四个tab</h1>`}      
     new Vue({        
        el:'#app',
       data(){         
             return {            
                 tabShow:'A'
             }
       },       
         components:{            
             'A': A,            
             'B': B,           
              'C': C,            
              'D': D
       },        
        methods:{
           tab(currentShowTab){                
                this.tabShow = currentShowTab;
           }
       }     })   
 </script>

</body>

</html>

两个组件方式,还有一种是 .vue 为后缀的文件组件,需要模块化才能用

代码语言:javascript
复制
<!DOCTYPE html><html><head>
   <meta charset="utf-8"/>
   <title>Demo</title>
   <script src="https://unpkg.com/vue"></script></head><body>
   <div id="app">     <!-- 一个全局化组件 hello -->
     <hello></hello>
     <hr>
     <!-- 一个局部组件 world -->
     <world></world>
     
   </div>
     
   <script>     //注意:组件要写在实例之前,不然就会报错
     Vue.component('hello',{      
          template:`<h1>我是一个全局话组件</h1>`
     });      

     //局部组价 需要用components 去注册
     world = {        
         template:`<h2>我是一个局部组件</h2>`
     }      //实例
     new Vue({        
       el:'#app',
       data(){        
          return {}
       },        
         //components 注册world组件
       components:{          
         'world': world
       }
     })          
</script>
</body>
</html>

单项数据流,父组件向子组件传参数,用props接受

代码语言:javascript
复制
<!DOCTYPE html><html><head>
   <meta charset="utf-8"/>
   <title>Demo</title>
   <script src="https://unpkg.com/vue"></script></head><body>   <div id="app">     <!-- 一个局部组件world, 把message数据传给子组件-->     <world :here="message"></world>   </div>
     
   <script>     world = {        // props接收父组件传过来的here
         props:['here'],        
         template:`<h2> {{here}} </h2>`
     }      
     new Vue({      
       el:'#app',
       data(){        
          return {            
             message:'不让任何事情成为你不去学习的理由--李华明'
         }
       },      
      components:{          
          'world': world
       }
     })   
      </script>

</body>

</html>

嵌套的组件使用方式

代码语言:javascript
复制
<!DOCTYPE html><html><head>
   <meta charset="utf-8"/>
   <title>Demo</title>
   <script src="https://unpkg.com/vue"></script></head><body>   <div id="app">
     <world></world>
   </div>
 
   <script>
     // 嵌套的子组件必须写在父组件之上
     city = {        
         template: `<div>我是子组件的子组件</div>`
     }      //嵌套的组件
     world = {       

      template:`
           <div>
               <h2>我是子组件</h2>
               <city></city>
           </div>`,        

      components:{            
          'city': city
       }
     }      

      new Vue({        
          el:'#app',
          data(){          
              return {            
                  message:'不让任何事情成为你不去学习的理由--李华明'
                 }
           },

          components:{        
               'world': world
       }
     })    

</script>
</body>
</html>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 javascript艺术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue组件常用的几种书写方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档