Vue非单页面组件是指在单个Vue实例中包含多个组件的情况,这些组件可以相互独立,也可以互相通信。创建Vue非单页面组件的步骤如下:

  1. 创建Vue实例

在HTML文件中引入Vue库,并创建Vue实例,如下所示:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vue Non-Single Page Component</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 组件区域 -->
    </div>
</body>
</html>

<script>
var vm = new Vue({
    el: '#app',
    data: {},
    methods: {},
    components: {},
});
</script>
  1. 创建组件

在Vue实例的components选项中添加组件,组件可以是全局组件也可以是局部组件。全局组件可以在应用的任何地方使用,而局部组件只能在父组件中使用。如下所示,创建了一个全局组件和一个局部组件。

Vue.component('global-component', {
    template: '<div>这是一个全局组件</div>'
});

var localComponent = {
    template: '<div>这是一个局部组件</div>'
}

var vm = new Vue({
    el: '#app',
    data: {},
    methods: {},
    components: {
        'local-component': localComponent
    },
});
  1. 在模板中使用组件

在模板中使用组件,可以使用Vue实例的template选项或者在HTML文件中使用Vue指令。如下所示,在Vue实例的template选项中使用两个组件。

var vm = new Vue({
    el: '#app',
    data: {},
    methods: {},
    components: {
        'global-component': {
            template: '<div>这是一个全局组件</div>'
        },
        'local-component': {
            template: '<div>这是一个局部组件</div>'
        }
    },
    template: '<div><global-component></global-component><local-component></local-component></div>'
});
  1. 组件通信

在Vue非单页面组件中,组件之间可以通过props和事件实现通信。props是在父组件中定义,然后传递给子组件;事件是在子组件中定义,然后由子组件触发,父组件通过监听子组件的事件来获取数据。如下所示,创建了一个父组件和一个子组件,通过props和事件实现了通信。

Vue.component('parent-component', {
    template: '<div><child-component :message="message" @send-message="getMessage"></child-component></div>',
    data: function() {
        return {
            message: ''
        }
    },
    methods: {
        getMessage: function(message) {
            this.message = message;
        }
    },
    components: {
        'child-component': {
            template: '<div><input type="text" v-model="message"><button @click="sendMessage">发送消息</button></div>',
            props: ['message'],
            data: function() {
                return {
                    message: this.message
                }
            },
            methods: {
                sendMessage: function() {
                    this.$emit('send-message', this.message);
                }
            }
        }
    }
});

var vm = new Vue({
    el: '#app',
    data: {},
    methods: {},
    components: {},
    template: '<div><parent-component></parent-component></div>'
});

以上就是创建Vue非单页面组件的基本步骤,可以根据需求进行修改。

创建vue 非单页面组件

原文地址: http://www.cveoy.top/t/topic/bmJE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录