Vue.js戦闘チュートリアルV2.xでは(3)第一Vue.jsプログラム

 絵

すでにHTML、CSSおよびJavaScriptに関する知識を知っていると仮定します。
 
3.1開始
.htmlのファイルを作成し、それまでのVueを導入しました:
 
<スクリプトSRC = " https://cdn.jsdelivr.net/npm/vue/dist/vue.js "> </ SCRIPT>
 
3.2宣言レンダリング
Vue.jsコア:
 
<DIV ID = "アプリ">
 
  {{メッセージ}}
 
</ div>
 
したアプリ=新しいヴュー({
 
  「#app」
 
  データ:{
 
    メッセージ: 'こんにちはVueの!'
 
  }
 
})
 
バインディング要素:
 
<DIV ID = "APP-2">
 
  <スパンV-バインド:タイトル= "メッセージ">
 
    ここでの動的バインディングメッセージを表示するには、数秒間ホバー!
 
  </ span>の
 
</ div>
 
=新しいVueのを({APP2ました
 
  '#アプリ-2'、
 
  データ:{
 
    メッセージ: 'ページロード' +新しいDate()のtoLocaleString()。
 
  }
 
})
 
条件およびサイクル3.3
スイッチング素子の表示制御です。
 
<DIV ID = "APP-3">
 
  <=は "見た" P場合は、V->今、あなたは私を見る</ P>
 
</ div>
 
VaRのAPP3 =新しいビュー({
 
  '#アプリ-3'、
 
  データ:{
 
    見:真
 
  }
 
})
 
項目のリストをレンダリングするために、V-のための指示データ配列バインドすることができます。
 
<DIV ID = "APP-4">
 
  <OL>
 
    <LIのV-用= "TODOでドス">
 
      {{}} todo.text
 
    </ LI>
 
  </ OL>
 
</ div>
 
=新しいVueのを({APP4ました
 
  '#アプリ-4'、
 
  データ:{
 
    すべての[
 
      {テキスト: 'ラーニングHTML'}、
 
      {テキスト: '学習CSS'}、
 
      {テキスト: '学習のJavaScript'}
 
    ]
 
  }
 
})
 
3.4は、ユーザー入力を処理します
V-上の命令でイベントリスナーを追加します:
 
<DIV ID = "APP-5">
 
  <P> {{メッセージ}} </ P>
 
  <ボタンVオン:= "reverseMessage" をクリック>リバースメッセージ</ボタン>
 
</ div>
 
=新しいVueのを({APP5ました
 
  '#アプリ-5'、
 
  データ:{
 
    メッセージ: 'こんにちはVue.js!'
 
  }、
 
  方法:{
 
    reverseMessage:関数(){
 
      this.message = this.message.split( '')。(逆)。ジョイン( '')
 
    }
 
  }
 
})
 
双方向入力及びvモデル指示アプリケーション状態間の結合を形成します。
 
<DIV ID = "APP-6">
 
  <P> {{メッセージ}} </ P>
 
  <入力Vモデル=「メッセージ」>
 
</ div>
 
VaRのAPP6 =新しいビュー({
 
  '#アプリ-6'、
 
  データ:{
 
    メッセージ: 'こんにちはVueの!'
 
  }
 
})
 
3.5建設アセンブリのアプリケーション
システムの構成要素は、私たちは一般的に、小さな独立した再利用可能なコンポーネントを使用する大規模なアプリケーションを構築することができます:
 
 
絵

 
 
Vueの中でコンポーネントを登録:
 
// TODOの項目と呼ばれる新しいコンポーネントを定義します
 
Vue.component( 'TODO項目'、{
 
  テンプレート: '<李>これは</ LI>に-Do項目です'
 
})
 
別のコンポーネントのテンプレートを構築するためにそれを使用します。
 
<OL>
 
  <! - TODO項目コンポーネントのインスタンスを作成します - >
 
  <TODO項目> </ TODO項目>
 
</ OL>
 
それは小道具を受け入れることができるように、コンポーネントの定義を修正:
 
Vue.component( 'TODO項目'、{
 
  // TODO項目のコンポーネントは、現在受け入れ
 
  //カスタム属性と同様に、「小道具」。
 
  // TODOという名前のこの小道具。
 
  小道具:[ 'すべて']、
 
  テンプレート: '<LI> {{todo.text}} </ LI>'
 
})
 
各成分送信アイテムの出力V-結合今後の命令サイクルを使用して:
 
<DIV ID = "APP-7">
 
  <OL>
 
    <!--
 
      现在我们为每个 todo-item 提供 todo 对象
 
      todo 对象是变量,即其内容可以是动态的。
 
      我们也需要为每个组件提供一个“key”,稍后再
 
      作详细解释。
 
    -->
 
    <todo-item
 
      v-for="item in groceryList"
 
      v-bind:todo="item"
 
      v-bind:key="item.id"
 
    ></todo-item>
 
  </ol>
 
</div>
 
Vue.component('todo-item', {
 
  props: ['todo'],
 
  template: '<li>{{ todo.text }}</li>'
 
})
 
var app7 = new Vue({
 
  el: '#app-7',
 
  data: {
 
    groceryList: [
 
      { id: 0, text: '蔬菜' },
 
      { id: 1, text: '奶酪' },
 
      { id: 2, text: '随便其它' }
 
    ]
 
  }
 
})
 
组件的应用模板:
 
<div id="app">
 
  <app-nav></app-nav>
 
  <app-view>
 
    <app-sidebar></app-sidebar>
 
    <app-content></app-content>
 
  </app-view>
 
</div>
 
完整代码:
 
<!DOCTYPE html>
 
<html>
 
<head>
    
<title>My first Vue app</title>
    
 
</head>
 
<body>
<div id="app">
  
  {{ message }}
 
</div>
<div id="app-2">
  
  <span v-bind:title="message">
    
  鼠标悬停几秒钟查看此处动态绑定的提示信息!
  
  </span>
 
</div>
 
<div id="app-3">
  
  <p v-if="seen">现在你看到我了</p>
 
</div>
<div id="app-4">
  
  <ol>
    
    <li v-for="todo in todos">
      
      {{ todo.text }}
    
    </li>
  
  </ol>
 
</div>
 
<div id="app-5">
  
  <p>{{ message }}</p>
  
  <button v-on:click="reverseMessage">反转消息</button>
 
</div>
 
<div id="app-6">
  
  <p>{{ message }}</p>
  
  <input v-model="message">
 
</div>
<div id="app-7">
  <ol>
 
 
  <!-- 创建一个 todo-item 组件的实例 -->
  
  <todo-item
    v-for="item in groceryList"
      
    v-bind:todo="item"
      
    v-bind:key="item.id"
 
  ></todo-item>
 
  </ol>
 
</div>
 
 
<script>
    
var app = new Vue({
      
  el: '#app',
      
  data: {
        
    message: 'Hello Vue!'
      
  }
    
})
var app2 = new Vue({
  
  el: '#app-2',
  
  data: {
    
    message: '页面加载于 ' + new Date().toLocaleString()
  
  }
 
})
 
var app3 = new Vue({
  
  el: '#app-3',
  
  data: {
    
    seen: true
  
  }
 
})
 
var app4 = new Vue({
  
  el: '#app-4',
  
  data: {
    
    todos: [
      
      { text: '学习 HTML' },
      
      { text: '学习 CSS ' },
     
      { text: '学习 JavaScript' }
    
    ]
  
  }
 
})
 
var app5 = new Vue({
  
  el: '#app-5',
  
  data: {
    
    message: 'Hello Vue.js!'
  
  },
  
  methods: {
    
    reverseMessage: function () {
      
      this.message = this.message.split('').reverse().join('')
    
    }
  
  }
 
})
 
var app6 = new Vue({
  
  el: '#app-6',
  
  data: {
    
    message: 'Hello Vue!'
  
  }
 
})
// 定义名为 todo-item 的新组件
 
Vue.component('todo-item', {
  
  props: ['todo'],
 
  template: '<li>{{ todo.text }}</li>'
 
})
 
var app7 = new Vue({
  
  el: '#app-7',
  
  data: {
 
    groceryList: [
      
      { id: 0, text: '蔬菜' },
      
      { id: 1, text: '奶酪' },
      
      { id: 2, text: '随便其它' }
    
    ]
  
  }
 
})
 
 
</script>
 
 
</body>
 
</html>

:ビデオチュートリアル見てようこそhttps://ke.qq.com/course/432961?tuin=36914f34を疑問に、QQチャットディスカッショングループ665714453を追加してください場合は、。
 

おすすめ

転載: www.cnblogs.com/daqiang123/p/11368374.html