入门
简单使用
编写html文件:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>计数器</title>
</head>
<body>
<div id="app"></div>
<script src="asserts/js/vue@3.2.33/vue.global.js"></script>
</body>
<script type="text/x-template" id="template">
<button v-on:click="addOne">加1</button>
<button v-on:click="minusOne">减1</button>
<div>Counter: {{ counter }}</div>
</script>
<script>
const App = {
template: document.querySelector("#template").text,
data() {
return {
counter: 0,
};
},
methods: {
addOne() {
this.counter++;
},
minusOne() {
this.counter--;
},
},
};
const app = Vue.createApp(App);
app.mount("#app");
</script>
</html>
Bootstrap v4
警告框
- 必须采用vue的关闭方式,data-dismiss="alert"会销毁整个元素
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>警告框</title>
<link rel="stylesheet" href="asserts/bootstrap@4.6.1/css/bootstrap.css" />
</head>
<body>
<div id="app"></div>
<script src="asserts/jquery/jquery-3.6.0.js"></script>
<script src="asserts/vue@3.2.33/vue.global.js"></script>
<script src="asserts/popper.js@1.16.1/popper.min.js"></script>
<script src="asserts/bootstrap@4.6.1/js/bootstrap.js"></script>
</body>
<script type="text/x-template" id="template">
<button class="btn btn-primary" type="button" @click="() => show=true">显示</button>
<button class="btn btn-secondary" type="button" @click="() => show=false">关闭</button>
<div v-if="show" ref="alert" class="alert alert-warning alert-dismissible" role="alert">
<strong>警告!</strong> 后台程序发生异常.
<button type="button" class="close" aria-label="Close" @click="() => show=false">
<span aria-hidden="true">×</span>
</button>
</div>
</script>
<script>
const App = {
template: document.querySelector("#template").text,
data() {
return { show: true };
},
methods: {},
};
const app = Vue.createApp(App);
app.mount("#app");
</script>
</html>
面包屑导航
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>面包屑导航</title>
<link rel="stylesheet" href="asserts/bootstrap@4.6.1/css/bootstrap.css" />
</head>
<body>
<div id="app"></div>
<script src="asserts/jquery/jquery-3.6.0.js"></script>
<script src="asserts/vue@3.2.33/vue.global.js"></script>
<script src="asserts/popper.js@1.16.1/popper.min.js"></script>
<script src="asserts/bootstrap@4.6.1/js/bootstrap.js"></script>
</body>
<script type="text/x-template" id="template">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#" @click="click">Home</a></li>
<li class="breadcrumb-item"><a href="#" @click="click">Library</a></li>
<li class="breadcrumb-item active" aria-current="page" @click="click">Data</li>
</ol>
</nav>
<div>
当前点击: {{text}}
</div>
</script>
<script>
const App = {
template: document.querySelector("#template").text,
data() {
return { text: "" };
},
methods: {
click(e) {
this.text = e.target.text;
},
},
};
const app = Vue.createApp(App);
app.mount("#app");
</script>
</html>
按钮
下拉菜单
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>样例</title>
<link rel="stylesheet" href="asserts/bootstrap@4.6.1/css/bootstrap.css" />
</head>
<body>
<div id="app"></div>
<script src="asserts/jquery/jquery-3.6.0.js"></script>
<script src="asserts/vue@3.2.33/vue.global.js"></script>
<script src="asserts/popper.js@1.16.1/popper.min.js"></script>
<script src="asserts/bootstrap@4.6.1/js/bootstrap.js"></script>
</body>
<script type="text/x-template" id="template">
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
下拉菜单
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#" @click="show">菜单1</a>
<a class="dropdown-item" href="#" @click="show">菜单2</a>
<a class="dropdown-item" href="#" @click="show">菜单3</a>
</div>
</div>
<div>
当前选择: {{text}}
</div>
</script>
<script>
const App = {
template: document.querySelector("#template").text,
data() {
return {
text: "",
};
},
methods: {
show(e) {
this.text = e.target.text;
},
},
};
const app = Vue.createApp(App);
app.mount("#app");
</script>
</html>