学Vue,就要学会vue JSX(大结局)

只能在render函数里面使用JSX

固然不是,你能够定义method,而后在method里面返回JSX,而后在render函数里面调用这个方法,不只如此,JSX还能够直接赋值给变量,好比下面这段代码vue

  methods: {
     $_renderFooter() {
       return (
         <div>
           <ElButton>肯定</ElButton>
           <ElButton>取消</ElButton>
         </div>
       )
     }
   },
   render() {
     const buttons = this.$_renderFooter()
     return (
       <ElDialog visible={this.visible}>
         <div>这里是一大坨内容</div>
         <template slot="footer">{buttons}</template>
       </ElDialog>
     )
   }

 

就算我今天不吃晚饭,也要把指令给你们讲讲

 

基础用法

虽然大部份内置的指令没法直接在JSX里面使用,可是自定义的指令能够在JSX里面使用,就拿element-uiv-loading指令来讲,能够这样用element-ui

   render() {
     /**
      * 一个组件上面可使用多个指令,因此是一个数组
      * name 对应指令的名称, 须要去掉 v- 前缀
      * value 对应 `v-loading="value"`中的value
      */
     const directives = [{ name: 'loading', value: this.loading }]
     return (
       <div
         {...{
           directives
         }}
       ></div>
     )
   }

 

修饰符

有些指令还可使用修饰符,好比上例中的v-loading,你能够经过修饰符指定是否全屏遮罩,是否锁定屏幕的滚动,这时候就须要这样写 v-loading.fullscreen.lock = "loading"数组

   render() {
     /**
      * modifiers指定修饰符,若是使用某一个修饰符,则指定这个修饰符的值为 true
      * 不使用能够设置为false或者直接删掉
      */
     const directives = [
       {
         name: 'loading',
         value: this.loading,
         modifiers: { fullscreen: true, lock: false }
       }
     ]
     return (
       <div
         {...{
           directives
         }}
       ></div>
     )
   }

 

 

总结

好了,今天讲到这里已经把vue JSX讲完了。这一内容基本上讲的差很少了。以为对您有帮助的能够帮忙点个赞。在这里谢谢你们了。我会不断出新的优质的文章给你们分享,一块儿学习进步。函数

相关文章
相关标签/搜索