首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在浏览器中使用Vue组件库?

如何在浏览器中使用Vue组件库?
EN

Stack Overflow用户
提问于 2020-11-19 18:40:45
回答 2查看 461关注 0票数 0

我有一个Vue组件图书馆。我通过汇总为浏览器而建。但我不能用CDN的浏览器。我做错了什么?我试过用<script type="module">和其他很多东西。下面是一个示例:

代码语言:javascript
复制
<div id="app">
  <MultiSplitPane split="horizontal" height="400px" width="1000px">
    <Pane>
      <template v-slot:content>
        Content 1
      </template>
    </Pane>
    <Pane>
      <template v-slot:content>
        Content 2
      </template>
    </Pane>
    <Pane>
      <template v-slot:content>
        Content 3
      </template>
    </Pane>
  </MultiSplitPane>
</div>


<script type="module">
  import Vue from 'https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.esm.browser.js'; 
  import { MultiSplitPane, Pane } from 'https://raw.githubusercontent.com/dgknca/vue-multi-split-pane/master/dist/vue-multi-split-pane.esm.js'; 
  
new Vue({ 
  el: '#app', 
  components: { MultiSplitPane, Pane } 
})
</script>

也试过这个

代码语言:javascript
复制
new Vue({
  el: '#app'
})
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
<script src="https://raw.githubusercontent.com/dgknca/vue-multi-split-pane/master/dist/vue-multi-split-pane.min.js"></script>

<div id="app">
  <MultiSplitPane
    split="horizontal"
    height="400px"
    width="1000px"
    resizerWidth="30px"
    classes="v-pane-custom">
    <Pane>
      <template v-slot:resizer>
        resizer slot
      </template>
      <template v-slot:content>
        Content 1
      </template>
    </Pane>
    <Pane>
      <template v-slot:content>
        Content 2
      </template>
    </Pane>
    <Pane>
      <template v-slot:content>
        Content 3
      </template>
    </Pane>
  </MultiSplitPane>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-27 17:54:11

我将组件与汇总捆绑在一起,并找到了定义组件的正确方法。这是我想要的。

代码语言:javascript
复制
Vue.component('MultiSplitPane', VueMultiSplitPane.MultiSplitPane)
Vue.component('Pane', VueMultiSplitPane.Pane)

new Vue({
  el: '#app'
})
代码语言:javascript
复制
@import url('https://fonts.googleapis.com/css2?family=Fira+Code&display=swap');
body {
  font-family: 'Fira Code', monospace;
  background: #d8d1d9;
}

.v-pane-custom .v-pane .content {
  background: #fff;
}

.v-pane-custom .content .innerContent {
  padding: 20px;
  line-height: 1.5;
}

.paneNested>.content>.innerContent {
  padding: 0;
}
代码语言:javascript
复制
<div id="app">
  <multi-split-pane split="horizontal" height="400px" width="1000px" resizerWidth="30px" classes="v-pane-custom">
    <Pane>
      <template v-slot:content>
        Content 1
      </template>
    </Pane>
    <Pane>
      <template v-slot:content>
        Content 2
      </template>
    </Pane>
    <Pane>
      <template v-slot:content>
        Content 3
      </template>
    </Pane>
  </multi-split-pane>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-multi-split-pane@1.1.1/dist/vue-multi-split-pane.min.js"></script>

票数 1
EN

Stack Overflow用户

发布于 2020-11-27 08:26:00

我认为您应该使用Bili来构建您的库:https://github.com/egoist/bili

bili.config.js中尝试使用此配置

代码语言:javascript
复制
const magicImporter = require('node-sass-magic-importer');

module.exports = {
  banner: true,
  output: {
    extractCSS: false,
  },
  plugins: {
    vue: {
      css: true
    },
    style: {
      preprocessOptions: {
        scss: {
          importer: magicImporter(),
        },
      },
    },
  }
};

在你的package.json

代码语言:javascript
复制
    "build": "vue-cli-service build --target lib --inline-vue src/index.js"

在此之后,您可以将库与npm run build捆绑在一起,并将js / css文件捆绑在您的dist/目录中,如果您将JS和CSS加载到浏览器中的HTML文件中,则可以在任何网站中使用组件。

不要错过将组件挂载到元素的index.js,如下所示:

代码语言:javascript
复制
import Vue from 'vue';
import MyComponent from "./MyComponent.vue";

new Vue({
    el: '#my-component',
    render: h => h(MyComponent)
  })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64918015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档