首页 > 其他分享 >render函数使用示例

render函数使用示例

时间:2023-06-06 16:33:23浏览次数:32  
标签:函数 render 示例 menu aside header BS createElement d2

import { mapState } from 'vuex'
import menuMixin from '../mixin/menu'
import { elMenuItem, elSubmenu } from '../libs/util.menu'
import BScroll from 'better-scroll'

export default {
  name: 'd2-layout-header-aside-menu-side',
  mixins: [
    menuMixin
  ],
  render (createElement) {
    return createElement('div', { attrs: { class: 'd2-layout-header-aside-menu-side' } }, [
      createElement('div', {}, [
        createElement('div', { attrs: { class: 'menu-title' } }, [createElement('i', { attrs: { class: 'el-icon-menu', style: 'margin-right:5px' } }), this.current.title]),
        createElement('el-menu', {
          props: { collapse: this.asideCollapse, uniqueOpened: false, defaultActive: this.active },
          ref: 'menu',
          on: { select: this.handleMenuSelect }
        }, this.aside.map(menu => (menu.children === undefined ? elMenuItem : elSubmenu).call(this, createElement, menu))),
        ...this.aside.length === 0 && !this.asideCollapse ? [
          createElement('div', { attrs: { class: 'd2-layout-header-aside-menu-empty', flex: 'dir:top main:center cross:center' } }, [
            createElement('d2-icon', { props: { name: 'inbox' } }),
            createElement('span', {}, this.$t('layout.header-aside.menu-side.empty'))
          ])
        ] : []
      ])])
  },
  data () {
    return {
      active: '',
      asideHeight: 300,
      BS: null
    }
  },
  computed: {
    ...mapState('d2admin/menu', [
      'aside',
      'header',
      'asideCollapse',
      'current'
    ])
  },
  watch: {
    // 折叠和展开菜单的时候销毁 better scroll
    asideCollapse (val) {
      this.scrollDestroy()
      setTimeout(() => {
        this.scrollInit()
      }, 500)
    },
    // 监听路由 控制侧边栏激活状态
    $route: {
      handler ({ fullPath }) {
        this.active = fullPath
        this.$nextTick(() => {
          if (this.aside.length > 0 && this.$refs.menu) {
            this.$refs.menu.activeIndex = fullPath
          }
        })
      },
      immediate: true
    }
  },
  mounted () {
    this.scrollInit()
  },
  beforeDestroy () {
    this.scrollDestroy()
  },
  methods: {
    scrollInit () {
      this.BS = new BScroll(this.$el, {
        mouseWheel: true,
        click: true
        // 如果你愿意可以打开显示滚动条
        // scrollbar: {
        //   fade: true,
        //   interactive: false
        // }
      })
    },
    scrollDestroy () {
      // https://github.com/d2-projects/d2-admin/issues/75
      try {
        this.BS.destroy()
      } catch (e) {
        delete this.BS
        this.BS = null
      }
    }
  }
}

标签:函数,render,示例,menu,aside,header,BS,createElement,d2
From: https://www.cnblogs.com/whh666/p/17460933.html

相关文章

  • mysql的ROUND、TRUNCATE函数
    在MySQL中,可以使用ROUND函数对数字进行四舍五入并保留指定位数的小数,语法如下:ROUND(number,decimals)其中,number参数表示要进行四舍五入的数字,decimals参数表示要保留的小数位数。例如,要对数字3.1415926进行四舍五入并保留两位小数,可以使用以下SQL语句:SELECTROUND(3.141592......
  • c++ 关于函数返回值问题
    c++中,当函数返回基本元素时,一般不会产生异常情况。但是当返回引用或指针时,即不使用值传递而是引用或指针传递来实现,那么需注意:不能返回函数内部的局部变量指针或引用。因为局部变量是在栈上,当离开函数作用域时,其内容会失效,相应的返回的指针或引用指向的内容就没有意义了。不能返......
  • mysql-窗口函数
    转:https://zhuanlan.zhihu.com/p/456560406什么是窗口--窗口对于group分组和聚合函数等,窗口是固定的,就是每一组,比如想知道每个学生的平均成绩,指定的组就是每个学生的id,聚合函数在这个id划定的窗口内对所有记录进行计算。这是静态窗口,窗口内的记录相互关联,窗口外的记录彼此......
  • storm任务示例
    LogProcess.javapackagemytest;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.i......
  • C++中的显式构造函数
      有如下一个简单的复数类:classClxComplex{public:ClxComplex(doubledReal=0.0,doubledImage=0.0){m_dReal=dReal;dImage=dImage;}doubleGetReal()const{returnm_dReal;}doubleGetImage()const{retu......
  • C++类构造函数、拷贝构造函数、复制构造函数、复制构造函数、构造函数显示调用和隐式
    一、构造函数是干什么的 1.2.{3.public:4.//类Counter的构造函数5.//特点:以类名作为函数名,无返回类型6.Counter()7.{8.0;9.}10.private:11.//数据成员12.intm_value;13.}      该类对......
  • 在前端中函数柯里化的妙用~
    前言:在使用它之前我们需要先了解什么是柯里化?所谓的柯里化不过就是将多个固定的参数生成一个新动态的调用函数,这句话看起来有点绕!但是我们理解清楚后就不会有这种感觉~在某些场景中我的执行函数是固定参数才会执行的,但是这些参数取数又不是一次性的时候你会怎么处理?我们一个函......
  • Python Exit——如何在Python中使用Exit函数来停止程序
    Python中的函数exit()用于退出或终止当前运行的脚本或程序。您可以使用它随时停止程序的执行。当exit()函数被调用时,程序会立即停止运行并退出。该函数的语法exit()是: exit([status])这里,status是一个可选参数,表示程序的退出状态。退出状态是一个整数值,表示程序终止的原因。按......
  • .static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗。
    static的作用:对变量:1.局部变量:在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。  1)内存中的位置:静态存储区  2)初始化:局部的静态变量只能被初始化一次,且C中不可以用变量对其初始化,而C++可以用变量对其初始化。  3)作用域:作用域仍为局部作用域,当定义它的......
  • -> 函数返回值注解符号
    ->出现在python函数定义的函数名后面,为函数添加元数据,描述函数的返回类型->函数返回值注解符号defadd(x,y)->int:#返回值注解表明了函数的返回值为int类型returnx+y......