下载 Vue3.0 单文件核心库:
https://unpkg.com/vue@3.0.0-beta.17/dist/vue.global.js
第一个 Vue3.0 的 Demo
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
{{ message }}
div>
body>
<script>
const { createApp } = Vue
const message = 'hello world!'
const app = {
setup() {
return {
message
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>
v-text 和 v-html
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
<div>
<div v-text="message">div>
<div v-html="message1">div>
div>
div>
body>
<script>
const { createApp } = Vue
const message = 'hello world!'
const message1 = 'hello moon!'
const app = {
setup() {
return {
message,
message1
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>
v-bind 绑定标签的属性
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
<div>
<a v-bind:href="url">点击a>
div>
<div>
<a v-bind:[attr]="url">点击a>
<a :[attr]="url">点击a>
div>
div>
body>
<script>
const { createApp } = Vue
const url = 'https://www.baidu.com'
const attr = 'href'
const app = {
setup() {
return {
url,
attr
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>
v-on 监听事件
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
<div>
<a v-on:click="onClick" href="javascript:void(0);">点击a>
<a @click="onClick" href="javascript:void(0);">点击a>
div>
div>
body>
<script>
const { createApp } = Vue
const app = {
setup() {
function onClick(event) {
console.log(event)
alert('hello!')
}
return {
onClick
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>
条件渲染 v-if 和 v-show
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
<div>
<div v-if="flag">{{ message }}div>
<div v-show="flag">{{ message }}div>
div>
div>
body>
<script>
const { createApp } = Vue
const message = "hello moon!"
const flag = false
const app = {
setup() {
return {
message,
flag
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>
区别:
为 true 时:

为 false 时:v-if 在 DOM 节点中不存在,v-show 为 display: none; 状态

v-if、v-else-if、v-else
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
<div>
<div v-if="flag">{{ message }}div>
<div v-else="flag">{{ message1 }}div>
<div v-if="color === 'red'" style="background-color: red;">reddiv>
<div v-else-if="color === 'green'" style="background-color: green;">greendiv>
<div v-else style="background-color: yellow;">yellowdiv>
div>
div>
body>
<script>
const { createApp } = Vue
const app = {
setup() {
const message = "hello world!"
const message1 = "hello moon!"
const flag = true
const color = 'yellow'
return {
message,
message1,
flag,
color
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>
v-for 列表渲染
DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="vue.beta.17.js">script>
head>
<body>
<div id="app">
<ul>
<li v-for="(item, index) in titles">{{ index }} - {{ item }}li>
ul>
<ul>
<li v-for="(value, key, index) of book">{{ index }} - {{ key }} : {{ value }}li>
ul>
div>
body>
<script>
const { createApp } = Vue
const app = {
setup() {
const titles = ['蟑螂恶霸', "鲨鱼辣椒", "蝎子莱莱"]
const book = {
title: '《平凡的世界》',
author: '路遥',
pubdate: '1986-12'
}
return {
titles,
book
}
}
}
createApp(app).mount('#app')
script>
<style>
style>
html>