我正在将Vue与一个名为AEM的CMS进行集成,该CMS基本上可以像Vue一样作为组件基础系统工作。而不是有一个网页和进口的。vue文件,此CMS上的每个组件都是一个新的vue实例(新的vue({…}))。因此,在我的页面上,有许多Veu实例使用同一个存储(vuex)彼此通信。
这实际上工作得很好,但我有一个场景,当我需要一个CMS组件在另一个组件中时。由于这两个组件都是唯一的vue实例,并且父级的“el”属性包含子级的“el”,因此子组件无法工作。
我知道这不是这个库的预期用途,但是有没有办法在两个vue实例上告诉或共享相同的“上下文”,甚至是这个场景的另一种方法。
谢谢,亚历山大。
解决方案:
>
替换所有新Vue(...)
东西到Vue.component(...)
Vue.extend(...)
等更好的接口管理。
仅使用ONEVue实例女巫是new Vue({...选项})
您应该只使用一个Vue实例,如前面提到的。
如果您继续为每个组件实例化Vue实例,您将在调试或组件通信时遇到问题,总的来说,这变得非常糟糕,您将错过Vue提供的父子通信和继承。
我不知道你的Vue架构,但我目前正在编写一份在AEM与Vue合作的手册。
基本的前提是使用Vue的inline-模板
和vanilla-js,在构建时没有typecript,nodeJS build,jsx或其他任何东西,只有vanilla-js,这样当你的页面加载时,甚至在你的js包出现之前,DOM在那里,您只需要通过实例化一个将装载所有组件的Vue实例来装载组件。这对搜索引擎优化来说也很棒(除非你计划在java中呈现服务器端的Vue组件...这在理论上是可能的,但是祝你好运!)
以下是AEM/Vue组件示例:
<simple-counter inline-template>
<button v-bind:style="style" v-on:click="add">${properties.clicksText || 'clicks: '} {{ counter }}</button>
</simple-counter>
JS:
注意,它在JS中没有模板,因为它在上面是内联的
Vue.component('simple-counter', {
data: function() {
return {
counter: 0,
style: {
color: 'red',
width: '200px'
}
}
},
methods: {
add: function() {
this.counter = this.counter + 1;
this.style.color = this.style.color == 'red' ? 'green' : 'red';
}
}
})
您可以以这种方式构建更多AEM组件,然后在客户端库结束时,当所有Vue组件都已注册后,您可以运行:
newvue({el:'#app'})
当然,这是假设您的页面主体
或其他父元素的id为:app
。
第二部分,如何在提交创作对话框后重新装载组件,您可以刷新页面。
我有一个关于如何在不刷新页面的情况下重新装载组件的问题,这里的基本思想是在组件中添加afteredit
事件,并仅在新修改的组件上运行新的Vue实例。。。还在做那件事吗
构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 MVVM 模式, Vue 的设计无疑受到了它的启发。因此在文档中经常会使用 vm 这个变量名表示 Vue 实例。 在实例化 Vue 时,需要传入一个选项对象,它可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。全部的选
SSR 渲染一个 Vue 实例的基本步骤如下: // 第 1 步:创建一个 Vue 实例 const Vue = require('vue') const app = new Vue({ template: `<div>Hello World</div>` }) // 第 2 步:创建一个 renderer const renderer = require('vue-server-rend
1. 前言 本节开始我们将正式进行 Vue 基础知识的学习。本小节我们将先介绍什么是 Vue 实例,包括如何创建 Vue 实例,Vue 实例上的属性参数,以及如何使用 Vue 开始工作。Vue 实例上的属性和方法很多,本小节我们不会详细介绍所有的属性和方法,同学们目前只需要了解什么是 Vue 实例以及如何创建它。 2. 慕课解释 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例
我使用带有单个文件组件的网页包。 我的菜单标题中有一个Vue实例,用于显示购物车下拉列表: 我在同一页面中有另一个Vue实例(产品目录): 我想$emit一个事件从一个实例到另一个实例:当目录更改时,我想调用ShoppingCart中的函数。 我测试eventHub: 所以我在每个实例上导入事件: 目录中: 在购物车: 但这行不通。仅当$on和$emit位于Vue的同一实例中时,它才起作用。 我认
本文向大家介绍vue+element-ui+ajax实现一个表格的实例,包括了vue+element-ui+ajax实现一个表格的实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 效果图: 以上这篇vue+element-ui+ajax实现一个表格的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍vue props 一次传多个值实例,包括了vue props 一次传多个值实例的使用技巧和注意事项,需要的朋友参考一下 数组: <custom-element :whatever="[...array]"></custom-element> 对象: <custom-element :whatever="{...obj}"></custom-element> 或者: <custom-