vue的基础知识总结(1)

news2024/11/25 18:50:42

 

目录

一.什么是Vue?

二.基于脚手架创建就前端工程:

三.Vue工程结构以及组件:

1.Vue项目结构: 

2.Vue组件:

 四.Vue基本使用方式:

1.文本插值{{}}:

2.属性绑定v-bind:

3.事件绑定v-on:

4.双向绑定v-model:

5.条件渲染 v-if , v-else , v-else-if:

6.循环v-for:

五.Vue的生命周期:

 六.Vue入门程序:

七.Vue原理:

八.Vue组合式API写法:

eg:想要点击按钮实现递增count:


一.什么是Vue?

Vue是一款用于构建用户界面的渐进式的JavaScript框架。

二.基于脚手架创建就前端工程:

我们在准备创建前需要自动配置环境:

①node.js      前端项目的运行环境

②npm           Javascript的包管理工具

③Vue CLI     基于Vue进行快速开发的完整系统,实现交互式的项目脚手架

随后我们直接在想要创建的地方打开cmd命令窗口,在内部输入vue ui并回车就会自动跳转相关网页。

 在这里就可以创建我们的Vue项目了。

三.Vue工程结构以及组件:

1.Vue项目结构: 

下面就是我们Vue项目结构以及其作用:

随后我们根据package.json文件下的Script内的脚本名来运行文件。

 

因为我这里运行的脚本名是serve,所以我们按住Ctrl+J或找到命令栏输入npm run serve就可以启动我们的前端项目了。我们按住Alt+B就可以查看前端项目界面。

 然后我们也可以在vue.config.js中配置前端服务端口号:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    port:7070 //设置端口号
  }
})

2.Vue组件:

Vue是我们前端的脚手架,所以自然也是包含我们前端三剑客的语言格式:

①结构  <template>  只有一个根元素,由它来生成HTML页面,HTML代码

②样式  <style>  全局样式以及局部样式,CSS代码

③逻辑  <script>  编写JS代码

 四.Vue基本使用方式:

1.文本插值{{}}:

作用:用来绑定data方法返回的对象属性

用法:{{  }}

<template>
  <div>
    <h1>{{name}}</h1>
    <h1>{{age > 60 ? "老年" : "青年"}}</h1>
  </div>
</template>

<script>
export default {
    data(){
        return {
            name: 'zhangsan',
            age: 20
        }
    }
}
</script>

 页面展示:

zhangsan 老年

2.属性绑定v-bind:

作用:为标签的属性绑定data方法中返回的属性

用法:v-bind:xxx   或简写为   :xxx

<template>
  <div>
    <div><input type="text" v-bind:value="name"></div>
    <div><input type="text" :value="age"></div>
    <div><img :src="src"></div>
  </div>
</template>

<script>
export default {
    data(){
        return {
            name: '记得开心一点嘛',
            age: 20,
            src: 'url.png'
        }
    }
}
</script>

这样的好处是不会在页面直接展示name,而是展示data中name的属性。

3.事件绑定v-on:

作用:为元素绑定对应的事件

用法:v-on:xxx   或简写为   @xxx

<template>
  <div>
    <div><input type="button" v-on:click="login"></div>
    <div><input type="button" @click="login"></div>
  </div>
</template>
 
<script>
export default {
    methods:{
        login(){
            alert("登录成功");
        }
    }
}
</script>

4.双向绑定v-model:

作用:表单输入项和data方法中的属性进行绑定,任意一方改变都会同步给另一方。

用法:v-model

<template>
  <div>
    <div>
        双向绑定:{{ name }}
        <input type="text" v-model="name"/>
        <input type="button" value="改变name" @click="changeName"/>
    </div>
  </div>
</template>
 
<script>
export default {
    data(){
        return {
            name: '记得开心一点嘛'
        }
    },
    methods:{
        change(){
            this.name = '记得开心一点'
        }
    }
}
</script>

最开始双向绑定的是name显示的是记得开心一点嘛,如果我在输入框更改这个name,那么页面显示的双向绑定的name也会跟着输入框而改变。而当我按按钮的时候,输入框以及双向绑定的name都会发生改变。

5.条件渲染 v-if , v-else , v-else-if:

作用:根据“ ”内表达式的值来动态渲染页面元素

用法: v-if = "" , v-else , v-else-if = ""

<template>
  <div>
    <div v-if="sex == 1">男</div>
    <div v-else-if="sex == 0">女</div>
    <div v-else>sex值有问题</div>
  </div>
</template>
 
<script>
export default {
    data(){
        return {
            sex: 1
        }
    }
</script>

6.循环v-for:

作用:基于数据循环,多次渲染整个元素。

用法:v-for="(item,index) in list" :key="item.id"

<template>
  <div id="app">
    <ui>
        <li v-for="(item,index) in list" :key="item.id">
            <span>{{index + 1}}</span>
            <span>{{item.name}}</span>
            <span>{{item.age}}</span>
        </li>
    </ui>
  </div>
</template>
 
<script>
export default {
    data(){
        return {
           list:[
            { id : 1 , name : '张三' , age : 20 },
            { id : 2 , name : '李四' , age : 21},
            { id : 3 , name : '王五' , age : 22}
           ]
        }
    }
}
</script>

五.Vue的生命周期:

 

 一般通过mounted钩子来发送请求数据。

关于钩子的相关内容请点击官方链接跳转:组合式 API:生命周期钩子 | Vue.js (vuejs.org)

 六.Vue入门程序:

<div id="app">
  <button @click="count++">
    Count is: {{ count }}
  </button>
</div>

import { createApp, ref } from 'vue'

createApp({
  setup() {
    return {
      count: ref(0)
    }
  }
}).mount('#app')

上面的示例展示了 Vue 的两个核心功能:

  • 声明式渲染:Vue 基于标准 HTML 拓展了一套模板语法,使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。

  • 响应性:Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM。

我们目前的主流是使用Vue组合式API进行前端开发。

七.Vue原理:

在main.js文件中:

import { createApp } from 'vue'  //本地导入
import App from './App.vue'

createApp(App).mount('#app')  
//*.vue称为单文件组件

createApp(App).mount('#app')  这行代码的作用:

vue自动接管首页index.html的div,最终App.vue内有什么内容,首页就展示什么内容,以至于我们直接根据控制App.vue来控制页面的展示。

八.Vue组合式API写法:

<template>
  <button @click="search">count:{{count}}</button>
</template>

<script setup>  
  import { onMounted, ref} from 'vue';
  const count = ref(0);  //声明响应式变量
  const search = function(){  //声明函数
    count.value++;
  }
  onMounted(()=>{    //声明钩子函数
    console.log('Vue Mounted ...')
  })
</script>

①setup:setup是标识,告诉Vue需要进行一些处理,以此来让我们使用组合式API。

②ref():接收一个内部值,返回一个响应式的ref对象,此对象只有一个指向内部值的属性value,通过对象.value就可以使用其属性值。

③onMounted(): 在组合式API中的钩子方法,注册一个回调函数,在组件挂载完成后执行。

详细版请点击官方链接跳转:组合式 API:setup() | Vue.js (vuejs.org) 

eg:想要点击按钮实现递增count:

我们为了美观,在components包下创建exercise12.vue,随后在导入App.vue来使用:

①./components/exercise12.vue:

<script setup>  //setup是标识,告诉Vue需要进行一些处理,以此来让我们使用组合式API
    import {  onMounted,ref } from 'vue'
    const count = ref(0);  //声明响应式变量
    const add = function(){  //声明函数
      count.value++;
    }
    onMounted(()=>{    //声明钩子函数
      console.log('Vue Mounted ...')
    })
</script>
<template>
    <button @click="add">count:{{count}}</button>
</template>

②App.vue声明:

<script setup>
  import ApiVue from './components/exercise12.vue'
</script>
<template>
  <ApiVue/>
</template>

这样的效果就是下面这样:

下面是官方文档的链接: 

常用:全局 API:常规 | Vue.js (vuejs.org) 

核心:响应式 API:核心 | Vue.js (vuejs.org)

工具:响应式 API:工具函数 | Vue.js (vuejs.org) 

进阶:响应式 API:进阶 | Vue.js (vuejs.org) 

依赖注入:组合式 API:依赖注入 | Vue.js (vuejs.org) 


好了,今天的内容就说到这里,记得三连,感谢收看!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用的项目管理软件有哪些?东成电动工具用 PowerProject 打造先进项目管理平台

近日&#xff0c;国内最大的专业电动工具制造企业&#xff1a;江苏东成电动工具有限公司与北京奥博思软件技术有限公司达成合作&#xff0c;借助 PowerProject 项目管理系统&#xff0c;全面提升项目管理效率&#xff0c;满足企业多场景、多角色的全周期项目管理&#xff0c;激…

torch._dynamo 理解(2)——Backend

0 概述 TorchDynamo 是一个 Python 级别的即时 (JIT) 编译器&#xff0c;旨在让未修改的 PyTorch 程序运行得更快。它通过 Python Frame Evaluation Hooks&#xff08;Python 框架评估钩子&#xff09;来实现这一目标&#xff0c;以便在运行时动态地生成和优化代码。这使得 To…

借助Aspose.html控件, 将SVG 转PNG 的 C# 图像处理库

Aspose.HTML for .NET 不仅提供超文本标记语言 ( HTML ) 文件处理&#xff0c;还提供流行图像文件格式之间的转换。您可以利用丰富的渲染和转换功能将SVG文件渲染为PNG、JPG或其他广泛使用的文件格式。但是&#xff0c;我们将使用此C# 图像处理库以编程方式在 C# 中将 SVG 转换…

VBA 颜色

1. ColorIndex 1-1. ColorIndex的值是从1到56。 Option ExplicitConst MAX_COL As Long 8 Const MAX_ROW As Long 2 Const START_ROW As Long 2 Const START_COL As Long 2Sub Color()Dim i As IntegerDim intRow As Long, intCol As LongCells.SelectSelection.ClearCon…

redis Ubuntu安装问题

报错1&#xff1a;Package pkg-config is not available, but is referred to by another package /bin/sh: 1: pkg-config: not found&#xff08;没有安装pkg-config&#xff09; sudo apt-get install pkg-config /bin/sh: 1: cc: not found&#xff08;没有安装gcc环境&am…

年过30年程序员,到底要不要考虑搞点副业

一、前言 作为一名年过三十的程序员&#xff0c;我深刻体会到了职场的残酷和不确定性。在这个技术日新月异的时代&#xff0c;我们不仅要在专业领域深耕细作&#xff0c;更要敏锐地捕捉互联网的风口&#xff0c;以确保自己不被时代淘汰。程序员的黄金年龄似乎被限定在35岁之前…

《Milvus Cloud向量数据库指南》——ChatGLM:从GLM-130B到GLM-4

ChatGLM:从GLM-130B到GLM-4的跨越:智谱AI在通用人工智能领域的深度探索与实践 在人工智能的浩瀚星空中,智谱AI如同一颗璀璨的新星,以其独特的技术视角和坚定的创新步伐,在通用人工智能(AGI)的征途上留下了深刻的足迹。技术生态总监贾伟在近期的一次分享中,不仅为我们描…

蓝牙+LoRa+北斗RTK融合定位系统介绍

蓝牙LoRa北斗RTK定位系统是新锐科创自主研发的融合定位系统&#xff0c;该系统利用融合定位技术将当今主流的室内外定位技术有机融合&#xff0c;从而满足不同场景定位需求。 蓝牙LoRa北斗RTK定位系统是一种室内外高精度人员定位管理系统&#xff0c;具有功耗低、部署简单、实时…

【计算机视觉学习之CV2图像操作实战:车牌识别1】

基于Sobel算子的车牌识别 步骤如下 高斯模糊图片灰度化Sobel算子图像二值化闭操作膨胀腐蚀中值滤波查找轮廓判断车牌区域 import cv2 # 读取图片 rawImage cv2.imread("car1.jpg") # 高斯模糊&#xff0c;将图片平滑化&#xff0c;去掉干扰的噪声 image cv2.Gau…

蓄势赋能 数智化转型掌舵人百望云杨正道荣膺“先锋人物”

2024年&#xff0c;在数据与智能的双涡轮驱动下&#xff0c;我们迎来了一个以智能科技为核心的新质生产力大爆发时代。在数智化浪潮的推动下&#xff0c;全球企业正站在转型升级的十字路口。在这个充满变革的时代&#xff0c;企业转型升级的道路充满挑战&#xff0c;但也孕育着…

【OceanBase DBA早下班系列】—— obdiag 收集的 SQL Monitor Report 如何解读

1. 前言 前几天写了一篇博客&#xff0c;告诉大家在遇到慢SQL或者复杂的并行SQL的时候怎么高效的来收集【SQL Monitor Report】&#xff0c;上一篇博客的链接&#xff1a; OceanBase 社区 &#xff1b;发出去后有不少问我这份报告咋解读。今天再出一篇博客给大家介绍下如何解…

【股票价格跨度】python刷题记录

R3-栈和队列-单调栈 有个小思路&#xff1a;如果用栈的话&#xff0c;比如a,b在c前面&#xff0c;然后查找c的跨度的时候&#xff0c;往回搜索&#xff0c;如果b比c小&#xff0c;那就可以把b的跨度加到c上&#xff0c;否则&#xff0c;继续往回查找到a----&#xff08;思路貌似…

AI画笔,你的创意伙伴:6款最佳AI绘画工具推荐

在这个无限可能的时代&#xff0c;一个优秀的人工智能绘画软件不仅可以打破传统绘画方法的束缚&#xff0c;而且可以让每个热爱艺术的人都体验到创作的乐趣。那么&#xff0c;什么样的人工智能绘画软件才是优秀的呢&#xff1f;什么样的人工智能绘画软件才能生成超逼真的AI绘画…

(十)联合概率数据互联原理及应用(JPDA)

目录 前言 一、JPDA原理及算法步骤 &#xff08;一&#xff09;算法步骤 1.确认矩阵计算 2.确认矩阵拆分 3.互联概率计算 4.状态及协方差更新 二、仿真验证 &#xff08;一&#xff09;模型构建 &#xff08;二&#xff09;仿真结果 总结 引用文献 前言 本文主要针…

世界上速度最快的超级计算机推导出超级BC8钻石配方

BC8 超级钻石比任何已知材料都要坚硬&#xff0c;但它们很可能只存在于巨型系外行星的内核中。现在&#xff0c;世界上最强的超级计算机"前沿"已经揭开了它们形成的秘密&#xff0c;这一发现可能会导致在地球上生产它们。 钻石不仅是夺人眼球的珠宝&#xff0c;而且在…

致敬万物的解释者:丹尼尔・丹尼特(1942~2024)

2024 年 4 月 19 日&#xff0c;全世界最受欢迎的哲学家之一丹尼尔・丹尼特在缅因州波特兰去世。他被无数人称作是自己的哲学英雄&#xff0c;他的观点像一把利刃&#xff0c;在心智和意识领域无出其右。 巨星陨落&#xff0c;思想长存。让我们一起回顾他的生平&#xff0c;聆…

AGI|如何用Open WebUI和Ollama在本地运行大型语言模型?

在某AI产品发布会上&#xff0c;我们需要演示在个人PC上运行大模型的能力。为了实现这一目标&#xff0c;我们进行了深入的市场调研和技术评估&#xff0c;最终选择了Open WebUI和Ollama作为演示的核心工具。 目录 一、介绍 二、部署 三、代码展示 一、介绍 什么是Ollama …

前端代码混淆加密(使用Terser、WebpackObfuscator)

零、相关技术及版本号 "vue": "2.6.12", "vue/cli-service": "4.4.6", "javascript-obfuscator": "^4.1.1", "terser-webpack-plugin": "^4.2.3", "vue-template-compiler": &quo…

JAVA后端拉取gitee仓库代码项目并将该工程打包成jar包

公司当前有一个系统用于导出项目&#xff0c;而每次导出的项目并不可以直接使用&#xff0c;需要手动从gitee代码仓库中获取一个模板代码然后将他们整合到一起它才是一个完整的项目&#xff0c;所以目前我的任务就是编写一个java程序可以自动地从gitee仓库拉取下来那个模板代码…

纯前端实现导出pdf文件(服务端不参与)

大致查阅了现阶段使用较多的几种方案,&#xff0c;大概有以下几种方式&#xff1a; 一、原生window.print()方法导出pdf 二、jspdf 三、jspdf html2canvas 四、pdfmake 方案优点缺点window.print()1、兼容性最好 2、可以将任意内容导出成 pdf 文档, 甚至是非改页面上的内容1…