Шаблон обновления Vue.js из метода компонента

Я хочу обновить шаблон компонентов при вызове определенного метода компонента. Точно так же, как функция разрешения, или параметр рендеринга Vue.compile, или параметр привязки v-html (но тогда с фактической компиляцией шаблона).

Как я могу вызвать функцию разрешения из метода компонента.

Возможно ли это и как мне это сделать с Vue.js?


person user1081577    schedule 20.01.2017    source источник


Ответы (1)


Вы определяете, что должно быть обновлено, в переменной возвращаемого объекта функции data компонента, например so. Данные должны быть функцией, если вы используете компонент (например, Vue.extend)

Затем вы определяете метод и меняете this.whateverYouNamedYourVariable в методе, например so.

И тогда вы вызываете метод либо в v-on, либо программно. Вот ссылка на привязку события v-on: Vue docs

И быстрый пример использования webpack.

<template>
    {{me}}
    <button v-on:"changeMe">Click to change!</button>
</template>

<script>
 import 'vue' from 'vue'; 
 export default {
    name: 'VueEventBindDemo',
    data: function() {
        return { me: 'isMe'}
    },
    methods: {
        changeMe: function() {
           this.me = "isYou";
        }
    }
 }
</script>
person Rando Hinn    schedule 20.01.2017
comment
Спасибо за ваш ответ, но как мне перерисовать весь шаблон, например compile fn . Чтобы в вашем примере обработчик v-on также применялся vue. - person user1081577; 20.01.2017
comment
Прочтите vuejs.org/v2/guide/components.html и посмотрите, что помогает. - person Rando Hinn; 20.01.2017
comment
Я сделал это, но Vue, вероятно, хочет, чтобы я создавал новый компонент для каждого шаблона вместо динамической загрузки шаблонов. Что, вероятно, близко к тому, что я хочу, это jsfiddle.net/chrislandeza/syewmx4e, но это устарело в vue2 - person user1081577; 20.01.2017
comment
Компилирует? Это не так, но Vue разделен на 2: только сборка среды выполнения и сборка компилятора + среда выполнения, какую из них вы получите, зависит от того, как вы ее загружаете. - person Rando Hinn; 20.01.2017