不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2023-10-06 11:49:41  修改时间:2024-05-19 19:21:20  分类:前端/Vue/Node.js  编辑

一. 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>

 

 

参考:

  1. https://www.php.cn/blog/detail/1047029.html
  2. https://blog.csdn.net/qq_61950936/article/details/126344902