2016-11-24 3 views
0

Я не могу понять, как заставить компоненты работать. Без компонента он работает нормально (прокомментированный код).Компонент Vue.js не работает

Вот мой HTML:

<strong>Total Price:</strong> <span v-text="total"></span><br> 
<strong>CPC:</strong> <span v-text="cpc"></span> 

Вот мой Vue.js код:

Vue.component('my-component', { 
    // data: function() { 
    //  return { interval: 0, exposure: 0, clicks: 0, total: 0, cpc: 0 } 
    // }, 
    computed: { 
     total: function() { 
      return(this.clicks * (this.exposure * 0.001/10)/700).toFixed(8) 
     }, 
     cpc: function() { 
      return((this.total)/(this.clicks > 0 ? this.clicks : 1)).toFixed(8) 
     } 
    } 
}); 

const app = new Vue({ 
    el: '#app', 
    data: { 
     interval: 0, exposure: 0, clicks: 0, total: 0, cpc: 0 
    }, 
    // computed: { 
    //  total: function() { 
    //   return(this.clicks * (this.exposure * 0.001/10)/700).toFixed(8) 
    //  }, 
    //  cpc: function() { 
    //   return((this.total)/(this.clicks > 0 ? this.clicks : 1)).toFixed(8) 
    //  } 
    // } 
}); 

1) Это не работает, если я не раскомментировать комментировал код.

2) JSFiddle: http://jsfiddle.net/tjkbf71h/3/

ответ

1

Вам нужно включить этот компонент в HTML-разметке:

<div id="app"> 
    <my-component></my-component> 
</div> 

, а затем HTML вы хотите, отображается как часть этого компонент должен быть в шаблоне, встроенном или иным образом:

Vue.component('my-component', { 
    template: '<div>Your HTML here</div>', 
    data: function() { 
     return { interval: 0, exposure: 0, clicks: 0, total: 0, cpc: 0 } 
    }, 
// 
+0

Есть ли способ, которым я могу достичь того же, без использования шаблонов? Это выглядит так уродливо. Благодаря! – DanVeira

+1

Однофайловые компоненты: https://vuejs.org/v2/guide/single-file-components.html Хотя, как сказал Бельмин в своем ответе, вам придется использовать webpack или браузеру. – jaredsk

+0

Я уже пользуюсь webpack (с Laravel Elixir), так что, надеюсь, это будет проще. Благодаря! – DanVeira

2

Вы не определили шаблон для компонента, так Vue не знает, где и как сделать свой компонент.

Вы можете использовать встроенные строки шаблонов, монтировать их в тег шаблона или использовать отдельные компоненты файлов - с помощью веб-пакета или браузера.

Во-первых, я предлагаю вам прочитать документы

https://vuejs.org/v2/guide/components.html

+0

Я не думаю, что это проблема. Я не хочу использовать шаблон, я не использую его, и это работает, и я не использую шаблон: http://jsfiddle.net/tjkbf71h/4/ Поэтому я просто хочу реализовать это в компонент. – DanVeira

+1

Я не понимаю, что работает на этой скрипке? Сначала у вас нет шаблона для компонента, во-вторых, вы не используете этот компонент, который вы зарегистрировали в любом месте разметки. У вас есть экземпляр компонента и vue с одинаковыми данными, и именно поэтому вы видите данные. И вы должны использовать его, иначе я не знаю, как вы думаете, чтобы заставить компонент работать. –

+0

Измените значения в выпадающих меню (экспозиция и клики). – DanVeira

Смежные вопросы