【VUe】简略学习 vue

Vue 是一套用于构建用户界面的渐进式框架。要想使用这个框架,就需要先在页面中引用:

在这里插入图片描述

如何使用:

在这里插入图片描述
来到控制台:

在这里插入图片描述

数据绑定

若要在标签里替换,就需要使用 v-bind 指令了:
在标签里(尖括号里)需要使用指令,v-xxx,如果使用 {{}},则不会替换,{{}} 是使用在标签外的

在这里插入图片描述
在这里插入图片描述

单向和双向绑定

在这里插入图片描述

事件

可以用 v-on 来监听事件:

在这里插入图片描述

事件修饰符

Vue 中事件修饰符(常用):
.prevent:阻止默认事件
.stop:阻止事件冒泡
.once:只触发一次事件
可以连续写多个修饰符。

在这里插入图片描述

键盘事件

Vue 中常用的按键别名:
回车—enter,删除—delete,退出—esc,空格—space,换行—tab,上—up,下—down,左—left,右—right

在这里插入图片描述

--------------------------------------------------------------------------------------------------------------------------------------------
现有一个需求,在输入框中输入信息,最后合并显示出来。
如果需求变换,例如在姓名输入框中,无论用户输入几个字,都取前三个,输入的字母要大写等等。
那在代码中就要 {{name.slice(0,3).toLocaleUpperCase()}},显得很臃肿。

在这里插入图片描述

此时我们可以使用下面这种形式:

在这里插入图片描述
还可以使用计算属性

这里需要手动添加 get 方法,当使用 Message 时,get 就会被调用,如需修改 Message,也可添加 set 方法。

在这里插入图片描述

当只读取而不修改时可以简写成:

<div id="root">
    姓名:<input type="text" v-model="name"><br /><br />

    学校:<input type="text" v-model="school"><br /><br />
    信息:<span>{{Message}}</span>
</div>

<script>
	new Vue({
	    el: "#root",
	    data: {
	        name: '张',
	        school: '光明'
	    },
	    // 简写
	    computed: {
	        Message() {
	            return this.name + "--" + this.school
	        }
	    }
	})
</script>

样式绑定

在这里插入图片描述

v-if

在这里插入图片描述

v-for

key 为对象的标识,一般使用数据中的唯一标识来作为 key,若仅在数组后插入数据,没有打乱数据顺序,也可使用 index 索引作为 key,如果不手动设置 key,默认以 索引当作 key。

在这里插入图片描述

列表过滤

在输入框中输入关键字来查询列表中包含该关键字的数据:

<div id="root">
    <!-- keyword 数据绑定,当用户在输入框输入数据时,keyword就等于用户输入的数据 -->
    <input type="text" placeholder="请输入" v-model="keyword">
    <ul>
        <!-- 在已过滤的数组中遍历 -->
        <li v-for="p in filPersons">{{p}}</li>
    </ul>
</div>


<script>
    new Vue({
        el: "#root",
        data: {
            keyword: '',
            persons: ["张三", "李四", "王五", "王五五", "周三"],
            filPersons: []
        },
        // 监听 keyword,一旦被改动,执行handler,返回被过滤的数组
        watch: {
            keyword: {
                // 立即执行handler,还没有输入关键字,所以已过滤数组就等于初始数组
                immediate: true,
                handler(val) {
                    this.filPersons = this.persons.filter((p) => {
                        // 没有输入字符,就是空字符,会返回0,也就是'abf'.indexOf('')返回0
                        // 判断是否包含该字符,返回过滤后的数组
                        return p.indexOf(val) !== -1
                    })
                }
            }
        }
    })
</script>

内置指令

<div id="root">
    <h3>{{name}}</h3>
    <!-- 以纯文本方式读取 name -->
    <h3 v-text="name"></h3>

    <!-- 以纯文本方式读取msg -->
    <h3 v-text="msg"></h3>

    <!-- 以html的方式读取msg -->
    <h3 v-html="msg"></h3>

    <div>=================</div>

    <!-- v-once 读取n一次,不管n后面变不变 -->
    <h3 v-once>初始值:{{n}}</h3>

    <!-- n会随着加一 -->
    <h3 >当前值:{{n}}</h3>
    <button @click="n++">点击加 1</button>
    
</div>

<script>
    new Vue({
        el: "#root",
        data: {
            name:'张三',
            msg:'<a href="https://www.baidu.com">点击跳转百度</a>',
            n:1
        },

    })
</script>

在这里插入图片描述

组件

组件,可以使得一段 “代码” 在一个或多个页面中被重复使用,就像调取一个函数一样。例如一个网站的头部和底部,基本上都相同,此时就不用复制相同的代码到不同的 html 文件中来完成这个效果,只需在相同的地方使用我们的组件即可。
使用组件需要三个步骤:1. 创建组件。2. 定义组件。3. 编写组件标签。

<body>

    <div id="root">
        //3. 编写组件标签
        <school></school>
        <hr>
        <student></student>
    </div>

    <script>
        //1. 创建 school 组件
        const school = Vue.extend({
            template: `
            <div>
                <h3>学校名称:{{name}}</h3>
                <h3>学校地址:{{address}}</h3>
            </div>
            `,
            data() {
                return {
                    name: '光明学校',
                    address: '北京'
                }
            }
        })
        //1. 创建 student 组件
        const student = Vue.extend({
            template: `
            <div>
                <h3>学生姓名:{{name}}</h3>
                <h3>学生年龄:{{age}}</h3>
            </div>
            `,
            data() {
                return {
                    name: '张三',
                    age: 18
                }
            }
        })

        new Vue({
            el: "#root",
            //2. 注册组件
            components: {
                school:school,
                student:student,
            }

        })
    </script>
</body>

在这里插入图片描述

创建 vue 脚手架

其实就是为了更方便的使用我们创建的 vue 文件

1. 先设置镜像源:
npm config set registry https://registry.npm.taobao.org
查看是否设置成功:
npm config get registry
在这里插入图片描述

2. 进行安装:npm install -g @vue/cli
执行完成后,关闭 cmd 窗口,再次打开,输入 vue 查看是否安装成功。
在这里插入图片描述

3. 切换到要创建项目的目录,执行命令:
vue create test test 为项目名。
在这里插入图片描述

输入 vue create test 后,会出现下图
在这里插入图片描述
如图创建成功:
在这里插入图片描述
先进入项目,cd test
再执行命令,npm run serve
在这里插入图片描述
在浏览器输入
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库insert详细用法

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 INSERT 语句用于将数据插入表中&#xff0c;向指定表格添加1行或多行数据&#xff0c;本篇文章主要以kingbase介绍insert的一些技巧。 文章目录如下 1. 基本语法 2. 实用技巧 2.1. 插入其他表数据 2.2. 快速插入万…

【力扣hot100】刷题笔记Day25

前言 这几天搞工作处理数据真是类似我也&#xff0c;还被老板打电话push压力有点大的&#xff0c;还好搞的差不多了&#xff0c;明天再汇报&#xff0c;赶紧偷闲再刷几道题&#xff08;可恶&#xff0c;被打破连更记录了&#xff09;这几天刷的是动态规划&#xff0c;由于很成…

HTML5七天学会基础动画网页10(2)

制作立方体 学完前面的基础内容&#xff0c;制作立方体是个不错的练习方法&#xff0c;先看成品 再分析一下&#xff0c;六个面让每个面旋转平移就可以实现一个立方体&#xff0c;来看代码: <title> 制作立方体</title> <style> *{ margin: 0; padding: 0; …

鸿蒙开发:从入门到精通的全方位学习指南

随着华为鸿蒙HarmonyOS生态系统的迅速扩展&#xff0c;越来越多的开发者渴望深入了解并掌握这一前沿技术。本文旨在为鸿蒙开发新手提供一份详尽且实用的学习教程&#xff0c;助您从零开始&#xff0c;逐步迈向鸿蒙开发的巅峰。 一、鸿蒙开发环境搭建 DevEco Studio安装&#x…

C语言--- 指针运算笔试题详解

目录 题目1&#xff1a; 题目2&#xff1a; 题目3&#xff1a; 题目4&#xff1a; 题目5&#xff1a; 题目6&#xff1a; 题目7&#xff1a; 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);print…

Open3D 利用四个点计算球心和半径 (28)

Open3D 利用四个点计算球心和半径 (28) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 给定的四个点坐标,计算球心和半径,提供验证的四个点来比较最终的结果是否准确。 二、算法实现 1.代码 代码如下(示例): import numpy as npdef calculate_sphere_center_…

课时61:流程控制_if条件控制_嵌套if实践

2.2.3 嵌套if实践 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 一个if语句仅仅能够针对一个场景的多种情况。当我们面对多场景的条件判断的时候&#xff0c;一个if结构语句无法满足需求&#xff0c;这个时候&#xff0c;我…

海格里斯HEGERLS智能托盘四向车系统为物流仓储自动化升级提供新答案

随着实体企业面临需求多样化、订单履行实时化、商业模式加速迭代等挑战&#xff0c;客户对物流仓储解决方案的需求也逐渐趋向于柔性化、智能化。作为近十年来发展起来的新型智能仓储设备&#xff0c;四向车系统正是弥补了先前托盘搬运领域柔性解决方案的空白。随着小车本体设计…

【AI】如何创建自己的自定义ChatGPT

如何创建自己的自定义ChatGPT 目录 如何创建自己的自定义ChatGPT大型语言模型(LLM)GPT模型ChatGPTOpenAI APILlamaIndexLangChain参考推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课本文将记录如何使用OpenAI GPT-3.5模型、LlamaIndex和LangChain创建自己的…

Grunt、Gulp 与 webpack:谁更胜一筹?

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

PWM驱动智能小车舵机运动

文章目录 一、硬件电路二、舵机初始化三、舵机控制 一、硬件电路 通过TIMER3的通道3提供PWM驱动电机 二、舵机初始化 初始化让舵机位于最左边&#xff0c;也就是0。 static int ServoInit(struct Servo *ptdev){if(NULL ptdev){LogDebug("ServoInit EINVAL \r\n&qu…

力扣题目训练(19)

2024年2月12日力扣题目训练 2024年2月12日力扣题目训练575. 分糖果589. N 叉树的前序遍历590. N 叉树的后序遍历275. H 指数 II279. 完全平方数132. 分割回文串 II 2024年2月12日力扣题目训练 2024年2月12日第十九天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;…

蓝桥杯刷题7

目录 1. 字母数 2. 列名 3. 大乘积 4. 最大连通 5. 星期几 1. 字母数 public class Main {public static void main(String[] args) {int num 2023;while(true) {String mInteger.toString(num,16);if(m.matches("^[a-f]$")){System.out.println(num);break;}n…

人生旅途:清理过往,规划未来,松弛前行

在人生的道路上&#xff0c;我们时常会遭遇各种障碍和挑战。这些障碍可能来自于外界环境的压力&#xff0c;也可能来自于内心的困惑和迷茫。然而&#xff0c;正是这些障碍和挑战&#xff0c;塑造了我们的性格&#xff0c;让我们变得更加坚强和成熟。当我们清理完上一段的障碍后…

数据治理实践——金融行业大数据治理的方向与实践

目录 一、证券数据治理服务化背景 1.1 金融数据治理发展趋势 1.2 证券行业数据治理建设背景 1.3 证券行业数据治理目标 1.4 证券行业数据治理痛点 二、证券数据治理服务化实践 2.1 国信证券数据治理建设框架 2.2 国信证券数据治理建设思路 2.3 数据模型管理 2.4 数据…

【数据分析】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 数据分析 目录&#xff1a; &#xff08;一&#xff09;数据分析介绍 &#xff08;二&#xff09;环境搭建 &#xff08;三&#xff09;matploatlib绘图 &#xff08;四&#xff09;numpy &…

VC#office ppt调用

1.打开VC#,建立控制台程序 2.引用MSOffice PPT引用 3. 主程序中引用ppt using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MSPPT Microsoft.Office.Interop.PowerPoint;//using WPSPPT PowerPoint;n…

美摄科技对抗网络数字人解决方案

在数字化浪潮的推动下&#xff0c;企业对于高效、创新且具备高度真实感的数字化解决方案的需求日益迫切。美摄科技凭借其在人工智能和计算机视觉领域的深厚积累&#xff0c;推出了一款全新的对抗网络数字人解决方案&#xff0c;该方案能够为企业构建出表情和动作都极为逼真的数…

【智慧公寓】东胜物联嵌入式硬件解决方案,为智慧公寓解决方案商降本增效,更快实现产品规模化生产

方案背景 东胜物联本次服务的客户是一家专注于提供智慧公寓解决方案的欧洲企业&#xff0c;该公司旨在为用户提供智能&#xff0c;便捷&#xff0c;安全的生活体验。其解决方案涵盖智慧公寓控制、自动化、能源管理和智能建筑&#xff0c;它的使命是通过复杂的控制系统使用户能…

20240309web前端_第一周作业_豆瓣电影

作业四&#xff1a;豆瓣电影 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0…