Как обернуть выбранный элемент в другой, или построить вокруг него конструкцию из элементов 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, в зависимости от условий. Вы можете выбрать один из них в зависимости от требований вашего проекта.