VUE 开发——Vue学习(一)

一、认识Vue

Vue是一个用于构建用户界面的渐进式框架。构建用户界面,即基于数据渲染出用户看到的页面。

创建Vue实例:

html 复制代码
    <div id="app">
        {{ msg }}
    </div>

    <script>
        //一旦引入VueJS核心包,在全局环境中,就有了Vue构造函数
        const app = new Vue({
            //通过el配置选择器,指定Vue管理的是哪个盒子,el挂载对象
            el: "#app",
            //通过data提供数据,给el指定的内容传递数据
            data: {
                msg: 'hello world'
            }
        })
    </script>

插值表达式:{{ 表达式 }}------一种Vue模板语法,使用的数据必须在data中

二、Vue指令

指令:带有v-前缀的特殊标签属性

v-show底层原理:切换CSS的display:none 来控制显示隐藏 ------ 频繁切换显示隐藏的场景

v-if 底层原理:根据 判断条件 控制元素的创建和移除(条件渲染)------ 要么显示,要么隐藏,不频繁切换的场景

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    
    <div id="app">
        <!-- v-html:设置元素的innerHTML,v-html="表达式" -->
        <div v-html="msg"></div>
        <!-- v-show:控制元素显示隐藏 true显示 false隐藏 -->
        <div v-show="flag" class="box">v-show</div>
        <!-- v-if:控制元素显示隐藏(条件渲染)-->
        <div v-if="flag" class="box">v-if</div>
        <p v-if="gender === 1">性别:男</p>
        <p v-else>性别:女</p>
        <!-- v-on:注册事件 添加监听 + 提供处理逻辑  -->
             <!-- v-on:事件名="内联语句" -->
            <button @click="count--">-</button>  
            <span>{{ count }}</span>
            <button v-on:click="count++">+</button>
            <!-- v-on:事件名="methods中的函数名" -->
            <button @click="fn">切换显示隐藏</button>
            <h1 v-show="isShow">hello world</h1>
        <!-- v-bind: 动态设置html的标签属性 src、url、title v-bind:属性名="表达式"-->
        <img v-bind:src="imgUrl" >
        <!-- v-for: 数据循环,多次渲染整个元素 v-for="(item,index) in 数组" -->
        <div>
            <ul>
                <li v-for="(item,index) in list">
                    {{ item }} - {{ index }}
                </li>
            </ul>
            <!-- v-for中的key key属性="唯一标识" 给当前的列表项添加唯一标识,便于Vue进行列表项的正确排序复用 -->
        </div>
        <!-- v-model:给表单元素使用,双向数据绑定,可以快速获取或设置表单元素内容 -->
        <div>
            <!-- 快速获取或设置表单元素的内容 -->
            账号:<input type="text" v-model="username"> <br><br>
            密码:<input type="password"> <br><br>
            <button @click="login">登录</button>
            <button @click="reset">重置</button>
        </div>

    </div>

    <script>
        const app = new Vue({
            el: "#app",
            data: {
                msg: `
                    <a href="http://www.baidu.com">
                        百度
                    </a>
                `,
                flag: true,
                gender: 2,
                count: 100,
                isShow: true,
                imgUrl: 'day01/imgs/WechatIMG324.jpg',
                list: ['语文','数学','英语'],
                username: '',
                password: ''
            },
            methods: {
                fn() {
                    this.isShow = !this.isShow
                    console.log('执行了fn')
                },
                login() {
                    console.log(thsi.username,this.password)
                },
                reset() {
                    this.username = ''
                    this.password = ''
                }
            }
        })
    </script>
</body>
</html>

三、指令的修饰符

通过"."指明一些指令后缀,不同后缀封装了不同的处理操作 ------ 简化代码

1.按键修饰符

@keyup.enter 键盘回车监听

2.v-model修饰符

v-model.trim 去除首尾空格

v-model.number 转数字

3.事件修饰符

@事件名.stop 阻止冒泡

@事件名.prevent 阻止默认行为

四、v-bind对于样式控制的增强

操作class

语法 :class="对象/数组"

操作style

语法 :style="样式对象"

五、v-model应用于其他表单元素

html 复制代码
<div class="radio">
        <!-- 
        1.name:给单选框加上name属性,可以分组 -> 同一组会互相互斥
        2.value: 给单选框加上value属性,用于提交给后台的数据 
        -->
        <input v-model="gender" type="radio" name="gender" value="1">男
        <input v-model="gender" type="radio" name="gender" value="2">女
    </div>

    <script>
        const radio = new Vue({
            el: 'radio',
            data: {
                gender: "2"
            }
        })
    </script>

六、计算属性的完整写法

computed: {

计算属性名 (){

一段代码逻辑

return 结果

}

}

相关推荐
涵信4 小时前
第一节 基础核心概念-TypeScript与JavaScript的核心区别
前端·javascript·typescript
小公主4 小时前
JavaScript 柯里化完全指南:闭包 + 手写 curry,一步步拆解原理
前端·javascript
ThreeYear_s5 小时前
基于FPGA的PID算法学习———实现P比例控制算法
学习·fpga开发
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
学习·安全·web安全·渗透测试·网络安全学习
nenchoumi31196 小时前
Swift 6 学习笔记(二)The Basics
笔记·学习·swift
TGB-Earnest6 小时前
【leetcode-合并两个有序链表】
javascript·leetcode·链表
GISer_Jing7 小时前
JWT授权token前端存储策略
前端·javascript·面试
拉不动的猪7 小时前
es6常见数组、对象中的整合与拆解
前端·javascript·面试
GISer_Jing7 小时前
Vue Router知识框架以及面试高频问题详解
前端·vue.js·面试
放逐者-保持本心,方可放逐7 小时前
webgl(three.js 与 cesium 等实例应用)之浏览器渲染应用及内存释放的关联与应用
开发语言·javascript·webgl·顶点着色器·three.js 释放·cesium 释放·片元着色器