2016-11-24 20 views
0

コンポーネントを動作させる方法を理解できないようです。コンポーネントがなければ、それはうまく動作します(コメント付きコード)。ここでVue.jsコンポーネントが動作しない

は私のHTMLです:

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)私がコメントしたコードのコメントを解除しない限り、これは動作しません:

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

ここに私のVue.jsコードです。

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

答えて

1

https://vuejs.org/v2/guide/components.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答えとしてBelminが述べたように、webpackやbrowserifyを使用する必要があります。 – jaredsk

+0

私はすでにwebpack(Laravel Elixir)を使っていますので、うまくいけば簡単になります。ありがとう! – DanVeira

2

どこで、どのようにコンポーネントをレンダリングするためにVueのは知りませんので、あなたは、あなたのコンポーネント用のテンプレートを定義していませんでした。

インラインテンプレートストリングを使用したり、テンプレートタグにマウントしたり、単一ファイルコンポーネント(webpackまたはbrowserifyを使用)を使用することができます。あなたがこのの一部として表示する

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

そしてHTML:まず

は、私はあなたがドキュメント

あなたのHTMLマークアップでコンポーネントを含める必要が
+0

私はそれが問題だとは思わない。私はテンプレートを使用したくない、私はそれを使用していない、これは動作し、私はテンプレートを使用していない:http://jsfiddle.net/tjkbf71h/4/だから私はちょうどこれを実装する成分。 – DanVeira

+1

私はこのフィドルで何がうまくいくのか分かりません。まず、コンポーネントのテンプレートはありません。次に、マークアップのどこにでも登録したこのコンポーネントを使用しません。同じデータを持つコンポーネントインスタンスとvueインスタンスがあるだけで、データが表示されます。 それを使用する必要があります。それ以外の場合は、コンポーネントを動作させる方法についてはわかりません。 –

+0

ドロップダウン(露出とクリック)の値を変更してください。 – DanVeira

関連する問題