一. Vite、Vue3安装,运行过程
1.1 vite安装方法:
// 安装 vite 命令,全局安装 npm install -g vite

1.2 vite创建vue项目:
// 创建一个项目 npm init vue@latest
- 安装过程:

(1) 梳理项目的结构:

其中:
- node_modules:目录用来存放第三方依赖包
- public:是公共的静态资源目录
- src:是项目的源代码目录(程序员写的所有代码都要放在此目录下)
- assets:目录用来存放项目中所有的静态资源文件(css、fonts等)
- components:目录用来存放项目中所有的自定义组件
- App.vue:是项目的根组件
- main.js:是整个项目的打包入口文件
- .gitignore:是 Git 的忽略文件
- index.html:是 SPA 单页面应用程序中唯一的 HTML 页面
- package.json:是项目的包管理配置文件
(2) vite 项目的运行流程
在工程化的项目中,vue 要做的事情很单纯:通过 main.js 把 App.vue 渲染到 index.html 的指定区域中。
其中:
① App.vue 用来编写待渲染的模板结构
② index.html 中需要预留一个 el 区域
③ main.js 把 App.vue 渲染到了 index.html 所预留的区域中
第1步: 在 App.vue 中编写模板结构
清空 App.vue 的默认内容,并书写如下的模板结构:
<template>
<h1>这是 App 根组件</h1>
</template>
第2步:在 index.html 中预留 el 区域
打开 index.html 页面,确认预留了 el 区域:
<body> <div id="app"></div> <script type="module" src="/src/main.js"></script> </body>
第3步:在 main.js 中进行渲染
按照 vue 3.x 的标准用法,把 App.vue 中的模板内容渲染到 index.html 页面的 el 区域中:
// 1. 按需导入 createApp 函数
import { createApp } from 'vue'
// 2. 导入待渲染的 App.vue 组件
import App from './components/App.vue'
// 1. 导入需要被全局注册的组件
import Swiper from './components/01.globalReg/Swiper.vue'
import Test from './components/01.globalReg/Test.vue'
// 3. 调用 createApp 函数,创建 SPA 应用的实例
const app = createApp(App)
// 2. 调用 app.component() 方法全局注册组件
app.component(Swiper.name, Swiper)
app.component(Test.name, Test)
// 4. 调用 mount() 把 App 组件的模板结构,渲染到指定的 el 区域中
app.mount('#app')
1.3 安装包(模块)
npm install

1.4 运行项目
npm run dev

1.5 打包项目
- 解析出html(dist文件夹)
npm run build

二. Vue的使用(相关操作)
2.1 双向绑定:
- 使用v-model,去掉value
- input值改变,p值同时改变
<template>
<p class="red">{{ ouyangke }}</p>
<input v-model="ouyangke" />
</template>
<script>
export default{
data () {
return {
ouyangke : "欧阳克"
}
},
}
</script>

2.2 v-bind 绑定
<!-- v-bind 语法糖 @,后面是事件-->
<!-- js的事件都可以绑定,绑定后才能使用vue的方法-->
<template>
<div @click="$event => fun()" >按钮</div>
</template>
<script>
export default{
methods : {
fun(){
alert("弹窗");
}
},
</script>

2.3 按键绑定
<template>
<div v-on:click="fun(1)">按钮</div>
<button @click="fun(2)">按钮</button>
</template>
<script>
export default{
methods : {
fun(e){
alert("弹窗");
if( e==1 ){
this.color = "color: gray";
} else if( e==2 ){
this.color = "color: lightblue";
}
}
},
}
</script>

2.4 v-html、v-text、v-pre、v-once
(1) v-html
v-html 使用htm1代码,直接使用显示字符串,未解析用v-html可以解析html代码
<template>
<div :style="color">{{ html }}</div>
<div v-html="html"></div>
</template>
<script>
export default{
data () {
return {
color : "color: green",
html: "<span style='color:red;'>字符串0000</span>",
}
},
</script>
(2) v-text
- 显示文本
<template>
<div v-text="html"></div>
</template>
<script>
export default{
data () {
return {
color : "color: green",
html: "<span style='color:red;'>字符串0000</span>",
}
},
</script>

(3) v-pre
- 显示打印数据
(4) v-once
- 关闭双向绑定
<template>
<input v-model="ouyangke">
<div v-once>{{ ouyangke }}</div>
</template>
// 方法
<script>
export default{
data () {
return {
ouyangke : "欧阳克111",
num : 20,
arr : [
'欧阳克','灭绝师太'
],
color : "color: green",
html: "<span style='color:red;'>字符串0000</span>",
}
},
}

2.5 事件修饰符:.stop、.self、.once、.prevent
(1) .stop
<template>
<div @click.stop="one()">事件1
<div @click.stop="two()">事件2
<div @click.stop="three()">事件3
</div>
</div>
</div>
</template>
<script>
export default{
methods : {
one(){
alert(1);
},
two(){
alert(2);
},
three(){
alert(3);
},
},
}
</script>

参考: