前言:前端开发框架——Vue框架学习。
准备工作:添加Vue devtools扩展工具
具体可查看下面的这篇博客
添加vue devtools扩展工具+添加后F12不显示Vue图标_MRJJ_9的博客-CSDN博客
Vue官方学习文档
Vue.js - 渐进式 JavaScript 框架 | Vue.js
MVVM
MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。MVVM模式有助于将应用程序的业务和表示逻辑与用户界面 (UI) 清晰分离。 保持应用程序逻辑和UI之间的清晰分离有助于解决许多开发问题,并使应用程序更易于测试、维护和演变。 它还可以显著提高代码重用机会,并允许开发人员和UI设计人员在开发应用各自的部分时更轻松地进行协作。 (百度百科)
基本概念
属性:在对象中定义的变量
函数:普通的定义在js顶层或其他函数里
方法:在对象中被定义的函数是方法
组件:组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is
特性扩展。(官网)
下面这篇博客介绍得很详细
Vue详细介绍及使用(组件)_vue组件_穆瑾轩的博客-CSDN博客
学习成功展示
选项式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vue项目</title>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
</head>
<body>
<div id="test">
<span>欢迎你,{{name}}</span>
<span :id="gender">{{leibie}}</span>
<span v-html="welcome">lisen to me{{welcome}}</span>
<div>
请输入你的名字:
<input v-bind:value="name" @click="changeName">
<input v-model:value="name">
</div>
请选择你的性别:
<label><input type="radio" :name="sex" value=先生 v-model="gender">male</label>
<label><input type="radio" :name="sex" value=女士 v-model="gender">female</label>
<label><input type="radio" :name="sex" value=none v-model="gender">none</label>
</div>
<script>
// const {createApp}=Vue
//定义一个vue组件实例对象
Vue.createApp({
//属性 data属性后是方法
data: function () {
return {
name: 'MRJJ_9',
gender: 'male',
welcome: '<strong>下午好</strong>',
}
},
//方法
methods: {
changeName(event) {
console.log(this.name);
console.log(event);
this.name = event.target.value
}
},
computed: {
//计算属性
leibie: {
get() {
if (this.gender == "先生") {
return "先生"
}
else if (this.gender == "女士") {
return "女士"
}
else {
return "人";
}
}
},
set(value) {
console.log(value);
this.gender=value;
}
}
//mount(document.getElementById("test"))
}).mount("#test")
</script>
</body>
</html>
组合式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vue项目组合式</title>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
<div id="test">
<span>欢迎你,{{username}}</span>
<span :id="gender">{{leibie}}</span>
<span v-html="welcome">lisen to me{{welcome}}</span>
<div>
请输入你的名字:
<input v-bind:value="username" @click="changeName">
<input v-model:value="username">
</div>
请选择你的性别:
<label><input type="radio" :name="sex" value=先生 v-model="gender">male</label>
<label><input type="radio" :name="sex" value=女士 v-model="gender">female</label>
<label><input type="radio" :name="sex" value=none v-model="gender">none</label>
</div>
<script>
const {createApp,computed,ref}=Vue;
createApp({
setup() {
let username = ref("MRJJ_9");
let gender = ref("famale");
let welcome = ref("下午好");
//在方法中定义一个函数
function changeName() {
console.log("在setup中调用了changeName方法", username);
}
let leibie = computed({
get() {
if (gender.value == "先生") {
return "先生"
}
else if (gender.value == "女士") {
return "女士"
}
else {
return "人";
}
},
set(value) {
console.log("setup方法中输出修改后的computed属性leibie的值")
}})
return {username,gender,welcome,leibie,changeName}
},
}
).mount("#test");
</script>
</body>
</html>