Vuejs webpack 环境中的语义 UI 侧边栏

Posted

技术标签:

【中文标题】Vuejs webpack 环境中的语义 UI 侧边栏【英文标题】:Semantic UI sidebar in Vuejs webpack environment 【发布时间】:2018-04-23 16:53:42 【问题描述】:

我正在使用 VueJS webpack 模板。

我在语义 UI 中的侧边栏上苦苦挣扎。有人可以指出我的代码有什么问题。它会切换侧边栏,但是当我再次单击该图标时,它不会隐藏侧边栏,而是会看到一个奇怪的闪烁。

<template>

<!-- Sidebar -->
<div class="ui right demo vertical sidebar labeled icon menu" id="mobile-sidebar">
  <a class="item">
    <i class="sticky note icon"></i>
    Bulletin
  </a>
  <a class="item">
    <i class="newspaper icon"></i>
    News
  </a>
  <a class="item">
    <i class="mail icon"></i>
    Contact us
  </a>
</div>

<div class="ui fixed inverted main menu mobile-menu">
  <div class="ui container">
    <div class="item">
      Menu
    </div>
    <div class="right menu">

      <a class="launch icon item" id="mobile-menu-trigger" v-on:click="toggle">
        <i class="content icon"></i>
      </a>
    </div>
  </div>
</div>
<div class="pusher">
  <h1>
    Hello Vue
  </h1>
</div>
</template>


<script>
     export default 
        name: 'home',
        methods: 
            toggle: function () 
               $('#mobile-sidebar').sidebar('toggle')
            
        
     

</script>

【问题讨论】:

您的代码中没有#mobile-sidebar 元素。 你能发布一个更完整的代码示例吗?此粘贴似乎只是 vue.js 组件,但不包括侧边栏的标记。 添加了代码而不是 pastebin。 【参考方案1】:

经过一段时间的努力,我终于解决了这个问题:

<script>
    export default 
    name: 'nav-bar',
    data: function () 
        return 
            isToggled: false,
            sideBar: null
        
    ,
    methods: 
         toggle: function () 
             if (this.isToggled) 
                 this.sideBar.sidebar('hide')
              else 
                 this.sideBar.sidebar('show')
             
         
    ,
    mounted: function () 
        this.sideBar = $('#mobile-sidebar')
        let self = this
        this.sideBar.sidebar(
            transition: 'push',
            onHidden: function () 
                self.isToggled = false
            ,
            onShow: function () 
                self.isToggled = true
            
        )
   
   
 </script>

【讨论】:

以上是关于Vuejs webpack 环境中的语义 UI 侧边栏的主要内容,如果未能解决你的问题,请参考以下文章

语义UI React侧边栏可推送功能

Vuejs - 在vuejs中获取语义日历的价值

WebPack 加载所有语义用户界面组件

Semantic-ui 模态与 VueJS 重复

VueJSwindows环境安装vue-cli及webpack并创建VueJS项目

vueJS mint-UI使用文档