如何在全球范围内加载类星体框架

时间:2017-10-11 10:05:40

标签: javascript vue.js quasar-framework

我是Quasar框架的新手。有人可以解释如何在全球范围内加载quasar组件。 (我的申请中的每个地方)

我的main.js就像:

import Vue from 'vue'
import Quasar from 'quasar'
import router from './router'

require(`quasar/dist/quasar.${__THEME}.css`)

Vue.config.productionTip = false
Vue.use(Quasar) // Install Quasar Framework

if (__THEME === 'mat') {
  require('quasar-extras/roboto-font')
}
import 'quasar-extras/material-icons'
// import 'quasar-extras/ionicons'
// import 'quasar-extras/fontawesome'
// import 'quasar-extras/animate'

Quasar.start(() => {
/* eslint-disable no-new */
 new Vue({
  el: '#q-app',
  router,
  render: h => h(require('./App').default)
 })
})

Unknown custom element: <q-btn> - did you register the component correctly? 
For recursive components, make sure to provide the "name" option.

 found in

---> <App> at src\App.vue
   <Root>

2 个答案:

答案 0 :(得分:3)

每当您使用任何Quasar元素(例如.q-btn,q-select)时,您需要在.vue文件中导入和导出它。

例如,要显示Toplevel,您可以使用  close() 但要显示它,您需要在.vue文件中包含以下内容。像:

<q-btn>

像这样,您将注册所有组件。

答案 1 :(得分:1)

在我的项目中,我使用这样的组件导入和使用

BoxLayout:
    orientation: 'vertical'
    #spacing : 10
    BoxLayout:
        #spacing : 10
        canvas.before:
            Rectangle:
                pos: self.pos
                size: self.size

            #Color:
                #rgb: (70,70,70)

        size_hint_y:1
        Button:
            canvas:
                Color:
                    rgb: 0,0,0
                Line:
                    points: self.pos[0] + self.size[0], self.pos[1], self.pos[0] + self.size[0], self.pos[1] + self.size[1]
                    width: 1.5
            spacing : 10
            text: 'test1'
            size : (60,30)
            size_hint : (None, None)
            background_normal: ''
            background_color: 90 , 90, 90, 90
            color: 0, 0.517, 0.705, 1



        Button:
            canvas:
                Color:
                    rgb: 0,0,0
                Line:
                    points: self.pos[0] + self.size[0], self.pos[1], self.pos[0] + self.size[0], self.pos[1] + self.size[1]
                    width: 1.5
            text: 'test2'
            size: (60, 30)
            size_hint: (None, None)
            background_color: 90 , 90, 90, 90
            background_normal: ''
            color: 0, 0.517, 0.705, 1

        Button:

            id: btn
            text: 'test3'
            size: (60, 30)
            size_hint: (None, None)
            on_release: dropdown.open(self)
            #size_hint_y: None
            #height: '40dp'
            background_normal: ''
            background_color: 90 , 90, 90, 90
            color: 0, 0.517, 0.705, 1

        CustDrop:
            auto_width: False
            size_hint_x: None
            width: '250dp'
            id: dropdown
            BoxLayout:
                size_hint_y: None
                height: '30dp'
                Button:
                    text: 'Sub menu1 Test3'
                    size_hint_x: None
                    width: '125dp'
                    #on_release: dropdown.select('')
                    on_release: app.root.test
                    background_color: 90 , 90, 90, 90
                    color: 0, 0.517, 0.705, 1
                Button:
                    background_color: 0,0,0,0
                    width: '125dp'
            BoxLayout:
                size_hint_y: None
                height: '30dp'
                Button:
                    text: 'Sub menu2 Test3'
                    size_hint_x: None
                    width: '125dp'
                    on_release: dropdown.select('')
                    background_color: 90 , 90, 90, 90
                    color: 0, 0.517, 0.705, 1
                Button:
                    background_color: 0,0,0,0
                    width: '125dp'
            BoxLayout:
                size_hint_y: None
                height: '30dp'
                Button:
                    text: 'Sub menu3 Test3'
                    size_hint_x: None
                    width: '125dp'
                    on_release: dropdown.select('')
                    background_color: 90 , 90, 90, 90
                    color: 0, 0.517, 0.705, 1
                Button:
                    background_color: 0,0,0,0
                    width: '125dp'
            BoxLayout:
                size_hint_y: None
                height: '30dp'
                Button:
                    text: 'Fourth'
                    size_hint_x: None
                    width: '125dp'
                    on_release: dropdown2.open(d2)
                    background_color: 90 , 90, 90, 90
                    color: 0, 0.517, 0.705, 1
                Button:
                    id: d2
                    background_color: 0,0,0,0
                    size_hint_x: None
                    width: self.parent.width/2.0
                CustDrop:
                    auto_width: False
                    size_hint_x: None
                    width: '125dp'
                    id: dropdown2
                    Button:
                        text: 'Sub menu1 Test3'
                        size_hint_y: None
                        height: '30dp'
                        #on_release: dropdown2.select('')
                        on_release: app.root.test
                        background_color: 90 , 90, 90, 90
                        color: 0, 0.517, 0.705, 1

                    Button:
                        text: 'Sub menu2 Test3'
                        size_hint_y: None
                        height: '30dp'
                        on_release: dropdown2.select('')
                        background_color: 90 , 90, 90, 90
                        color: 0, 0.517, 0.705, 1


                    Button:
                        text: 'Sub menu3 Test3'
                        size_hint_y: None
                        height: '30dp'
                        on_release: dropdown2.select('')
                        background_color: 90 , 90, 90, 90
                        color: 0, 0.517, 0.705, 1

    BoxLayout:
        spacing: 0,0
        canvas.before:
            Rectangle:
                pos: self.pos
                size: self.size

            Color:
                rgb: (1,1,1)

        AsyncImage
            source: '2.jpg'

        AsyncImage
            source: '4.jpg'

        AsyncImage
            source: '2.jpg'

        Label:
            size_hint_x: 22

    Label:
        size_hint_y: 18

仅用于测试用例导入所有

import Quasar, { QBtn, QSelect } from 'quasar-framewok';

Vue.use(Quasar, {
    components: { QBtn, QSelect }
});

请参阅Quasar docs