BREAKING CHANGE: `createApp` API has been adjusted.
  - `createApp()` now accepts the root component, and optionally a props
  object to pass to the root component.
  - `app.mount()` now accepts a single argument (the root container)
  - `app.unmount()` no longer requires arguments.
  New behavior looks like the following:
  ``` js
  const app = createApp(RootComponent)
  app.mount('#app')
  app.unmount()
  ```
		
	
			
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<script src="../../dist/vue.global.js"></script>
 | 
						|
 | 
						|
<div id="demo">
 | 
						|
  <h1>Latest Vue.js Commits</h1>
 | 
						|
  <template v-for="branch in branches">
 | 
						|
    <input type="radio"
 | 
						|
      :id="branch"
 | 
						|
      :value="branch"
 | 
						|
      name="branch"
 | 
						|
      v-model="currentBranch">
 | 
						|
    <label :for="branch">{{ branch }}</label>
 | 
						|
  </template>
 | 
						|
  <p>vuejs/vue@{{ currentBranch }}</p>
 | 
						|
  <ul>
 | 
						|
    <li v-for="{ html_url, sha, author, commit } in commits">
 | 
						|
      <a :href="html_url" target="_blank" class="commit">{{ sha.slice(0, 7) }}</a>
 | 
						|
      - <span class="message">{{ truncate(commit.message) }}</span><br>
 | 
						|
      by <span class="author"><a :href="author.html_url" target="_blank">{{ commit.author.name }}</a></span>
 | 
						|
      at <span class="date">{{ formatDate(commit.author.date) }}</span>
 | 
						|
    </li>
 | 
						|
  </ul>
 | 
						|
</div>
 | 
						|
 | 
						|
<script>
 | 
						|
const { createApp, ref, watch } = Vue
 | 
						|
const API_URL = `https://api.github.com/repos/vuejs/vue-next/commits?per_page=3&sha=`
 | 
						|
 | 
						|
const truncate = v => {
 | 
						|
  const newline = v.indexOf('\n')
 | 
						|
  return newline > 0 ? v.slice(0, newline) : v
 | 
						|
}
 | 
						|
 | 
						|
const formatDate = v => v.replace(/T|Z/g, ' ')
 | 
						|
 | 
						|
createApp({
 | 
						|
  setup() {
 | 
						|
    const currentBranch = ref('master')
 | 
						|
    const commits = ref(null)
 | 
						|
 | 
						|
    watch(() => {
 | 
						|
      fetch(`${API_URL}${currentBranch.value}`)
 | 
						|
        .then(res => res.json())
 | 
						|
        .then(data => {
 | 
						|
          console.log(data)
 | 
						|
          commits.value = data
 | 
						|
        })
 | 
						|
    })
 | 
						|
 | 
						|
    return {
 | 
						|
      branches: ['master', 'sync'],
 | 
						|
      currentBranch,
 | 
						|
      commits,
 | 
						|
      truncate,
 | 
						|
      formatDate
 | 
						|
    }
 | 
						|
  }
 | 
						|
}).mount('#demo')
 | 
						|
</script>
 | 
						|
 | 
						|
<style>
 | 
						|
  #demo {
 | 
						|
    font-family: 'Helvetica', Arial, sans-serif;
 | 
						|
  }
 | 
						|
  a {
 | 
						|
    text-decoration: none;
 | 
						|
    color: #f66;
 | 
						|
  }
 | 
						|
  li {
 | 
						|
    line-height: 1.5em;
 | 
						|
    margin-bottom: 20px;
 | 
						|
  }
 | 
						|
  .author, .date {
 | 
						|
    font-weight: bold;
 | 
						|
  }
 | 
						|
</style>
 |