Vue是一个流行的JavaScript框架,适合用于构建交互式的Web界面。
Vue的核心特性是响应式数据、组件系统、模板语法和虚拟DOM。
Vue提供了许多有用的工具和库,例如路由、状态管理、指令、过滤器、过渡效果等。
Vue3相关技术栈
Vue 3 官方中文文档
Vue3 教程
通过 Vite 的构建
项目使用基于 Vite 的构建设置,并允许使用 Vue 的单文件组件 (SFC)。
通过 CDN 使用 Vue
通过 CDN 使用 Vue 时,不涉及“构建步骤”。这使得设置更加简单。但是无法使用单文件组件 (SFC) 语法。
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
head>
<body>
<div id="app">div>
body>
<script>
// 选项式 API 风格
const app = {
// data() 返回的属性将会成为响应式的状态
// 并且暴露在 `this` 上
data() {
return {
count: 0
}
},
// methods 是一些用来更改状态与触发更新的函数
// 它们可以在模板中作为事件处理器绑定
methods: {
increment() {
this.count++
}
},
// 生命周期钩子,会在组件生命周期的各个不同阶段被调用
// 例如这个函数就会在组件挂载完成后被调用
mounted() {
// `this` 指向当前组件实例
console.log(`The initial count is ${this.count}.`)
},
// Vue 组件的模板
template : `
`
}
// 通过Vue框架,使挂载的id可以使用app内定义的变量和方法
Vue.createApp(app).mount('#app')
script>
html>
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
head>
<body>
<div id="app">
<input type="text" v-model="message">
<p>{{ message }}p>
div>
body>
<script>
const app = {
data() {
return {
message: ''
}
}
}
Vue.createApp(app).mount('#app')
script>
html>
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
head>
<body>
<div id="app">
<input type="text" v-model="num">
<p v-if="num>0">num 大于 0p>
<p v-else-if="num==0">num 等于 0p>
<p v-else>num 小于 0p>
div>
body>
<script>
const app = {
data() {
return {
num: 0
}
}
}
Vue.createApp(app).mount('#app')
script>
html>
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
head>
<body>
<div id="app">
<p v-for="item in items" :key="item.id">
{{ item.id }} - {{ item.text }}
p>
div>
body>
<script>
const app = {
data() {
return {
items: [
{ id: 1, text: 'test 1' },
{ id: 2, text: 'test 2' },
]
}
}
}
Vue.createApp(app).mount('#app')
script>
html>
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
head>
<body>
<div id="app">
<button v-on:click="count+=1">Count is: {{ count }}button>
div>
body>
<script>
const app = {
data() {
return {
count: 0
}
}
}
Vue.createApp(app).mount('#app')
script>
html>
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
head>
<body>
<div id="app">
<p>单行文本框:p>
<input v-model="data.message1" placeholder="请输入……">
<p>输入内容: {{ data.message1 }}p>
<p>多行文本框:p>
<textarea v-model="data.message2" placeholder="请输入……">textarea>
<p>输入内容: {{ data.message2 }}p>
div>
body>
<script>
const app = {
data() {
return {
data : {
message1: '',
message2: ''
}
}
}
}
Vue.createApp(app).mount('#app')
script>
html>
推荐使⽤Axios来完成AJAX请求。
DOCTYPE html>
<html lang="en">
<head>
<title>Testtitle>
<meta charset="UTF-8">
<link rel="icon" href="data:;base64,=">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.13/vue.global.prod.js">script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.6.2/axios.js">script>
head>
<body>
<div id="app">
<div>
<p>姓名: <input type="text" v-model="data.baseAccountQueryVo.accountName">p>
<button @click="submitForm">查询button>
div>
<hr>
<div>
<div v-for="item in items" :key="item.id">
<div>姓名: {{ item.accountName }}div>
<div>电话: {{ item.mobileNum }}div>
div>
div>
div>
body>
<script>
const app = {
data() {
return {
items: [],
data: {
"baseAccountQueryVo": {}
}
}
},
methods: {
submitForm() {
axios.post("http://127.0.0.1:8081/test/api/baseAccount/list",this.data).then(response => {
this.items = response.data.baseAccountQueryVos;
}).catch(error => {
console.log(error);
});
}
}
}
Vue.createApp(app).mount('#app')
script>
html>