Как обернуть выбранный элемент в другой, или построить вокруг него конструкцию из элементов DOM методами Vue?

Для обертывания выбранного элемента в другой или построения вокруг него конструкции из элементов DOM в Vue.js, мы можем использовать директиву v-if или компонент.

1. Использование директивы v-if

Для обертывания выбранного элемента в другой элемент, мы можем использовать директиву v-if.

Пример:

<div id="app">
  <div v-if="selectedElement">
    <div class="wrapper">
      <p>This is the content of the wrapper</p>
      <p>{{ selectedElement }}</p>
    </div>
  </div>
  <div v-else>
    <p>Please select an element</p>
  </div>
</div>
new Vue({
  el: "#app",
  data: {
    selectedElement: null
  }
});

В данном примере, если selectedElement имеет некоторое значение, то выбранный элемент будет обернут в элемент с классом wrapper. Если selectedElement не задан, то будет выведено сообщение "Please select an element".

2. Использование компонента

Для построения конструкции из элементов DOM вокруг выбранного элемента, мы можем создать компонент Vue.

Пример:

<div id="app">
  <div>
    <template v-if="selectedElement">
      <my-component :selected-element="selectedElement">
        <p>This is the content of the wrapper</p>
      </my-component>
    </template>
    <template v-else>
      <p>Please select an element</p>
    </template>
  </div>
</div>
Vue.component("my-component", {
  props: ["selectedElement"],
  template: `
    <div class="wrapper">
      <slot></slot>
      <p>{{ selectedElement }}</p>
    </div>
  `
});

new Vue({
  el: "#app",
  data: {
    selectedElement: null
  }
});

В данном примере, если selectedElement имеет некоторое значение, то компонент <my-component> будет отображать выбранный элемент, обернутый в элемент с классом wrapper, а также содержимое, переданное внутрь компонента через слоты. Если selectedElement не задан, то будет выведено сообщение "Please select an element".

Оба эти метода позволяют обернуть или построить конструкцию вокруг выбранного элемента в Vue.js, в зависимости от условий. Вы можете выбрать один из них в зависимости от требований вашего проекта.