Vue 入门教程

2023-11-16

vue

  • 核心:MVVM(Model-View-ViewModel),实现数据的双向绑定,把编程的关注点放在数据上

入门

  • 引入 js 文件
    <script src="js/vue.js"></script>
    
  • 在 JS 代码区域,创建 Vue 核心对象,进行数据绑定
    new Vue({
    	el: "#app",
    	data(){
    		return {
    			username: ""	
    		}
    	}
    })
    
  • 编写视图
    <div id="app">
    	<input name="username" v-model="username">
    	{{username}}
    </div>
    
  • demo
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
        </head>
        <body>
            <div id="app">
                <input v-model="username">
                <!--插值表达式-->
                {{username}}
            </div>
    
            <script src="js/vue.js"></script>
            <script>
                // 1. 创建 vue 核心对象
                new Vue({
                    el: "#app",
                    data() {
                        return {
                            username: ""
                        }
                    }
                    /* data: function (){
                        return {
                            username: ""
                        }
                    }*/
                });
            </script>
        </body>
    </html>
    

常用指令

  • v-bind:为 HTML 标签绑定属性值,如设置 href,css 样式等
    <a v-bind:href="url">xxx</a>
    
    <!-- v-bind 可以省略 -->
    <a :href="url">xxx</a>
    
  • v-model:在表单元素上创建双向数据绑定
    <input name="username" v-model="username">
    
  • v-on:为 HTML 标签绑定事件
    • html
    <input type="button" value="button" v-on:click="show()">
    <input type="button" value="button" @click="show()">
    
    • vue
    new Vue({
    	el: "#app",
    	methods: {
    		show() {
    		alert("被点击");
    		}
    	}
    })
    
  • v-if、v-else、v-else-if:条件性的渲染某元素,判定为true时渲染,否则不渲染
    <div v-if="count == 1">div1</div>
                <div v-else-if="count == 2">div2</div>
                <div v-else="count == 3">div3</div>
                <div v-show="count == 1">div v-show</div>
    
  • v-show:根据条件展示某元素,区别在于切换的是 display 属性的值
  • v-for:列表渲染,遍历容器的元素或者对象的属性
    • v-for
    <div v-for="addr in addrs">
    	{{addr}}<br>
    </div>
    
    • 加索引
    <div v-for="(addr,i) in addrs">
    	<!-- i表示索引,从0开始 -->
    	{{i+1}}:{{addr}}<br>
    </div>
    

生命周期

状态 阶段周期
beforeCreate 创建前
created 创建后
beforeMount 载入前
mounted 挂载完成
beforeUpdate 更新前
updated 更新后
beforeDestory 销毁前
destroyed 销毁后

  • mounted:挂载完成,Vue 初始化成功,HTML 页面渲染成功
    • 发送异步请求,加载数据
    • eg:
    new Vue({
    	el: "#app",
    	mounted(){
    		alert("vue 挂载完毕,发送异步请求 ");
    	}
    })
    

业务 - 使用 Vue 简化查询

  • brand.java 添加
        // 逻辑视图
        public String getStatusStr() {
            if (this.status == null) {
                return null;
            }
            if (this.status == 1) {
                return "启用";
            }
            return "禁用";
        }
    
  • brand-vue.html
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
        </head>
        <body>
            <div id="app">
                <a href="addBrand.html"><input type="button" value="新增"></a><br>
                <hr>
                <table id="brandTable" border="1" cellspacing="0" width="100%">
                    <tr>
                        <th>序号</th>
                        <th>品牌名称</th>
                        <th>企业名称</th>
                        <th>排序</th>
                        <th>品牌介绍</th>
                        <th>状态</th>
                        <th>操作</th>
                    </tr>
    
                    <!--
                        使用 v-for 遍历 tr
                    -->
                    <tr v-for="(brand,i) in brands" align="center">
                        <td>{{i + 1}}}</td>
                        <td>{{brand.brandName}}</td>
                        <td>{{brand.companyName}}</td>
                        <td>{{brand.ordered}}</td>
                        <td>{{brand.description}}</td>
                        <td>{{brand.statusStr}}</td>
                        <td><a href="#">修改</a> <a href="#">删除</a></td>
                    </tr>
                </table>
            </div>
    
            <script src="js/axios-0.18.0.js"></script>
            <script src="js/vue.js"></script>
            <script>
                new Vue({
                    el: "#app",
                    data() {
                        return {
                            brands: []
                        }
                    },
                    mounted() {
                        // 页面加载完成后,发送异步请求,查询数据
                        var _this = this;  // _this 作用域为 vue
                        axios({
                            method: "get",
                            url: "http://localhost:8080/brand-demo/ajaxSelectAllServlet"
                        }).then(function (resp) {
                            // 这里 this 作用域为 window
                            _this.brands = resp.data;
                        })
                    }
                })
            </script>
        </body>
    </html>
    
  • 测试

业务 - vue 实现新增

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue 入门教程 的相关文章

  • LeetCode基础-图-有向图-最短路径

    最短路径 从图中的一个顶点到另一个顶点的成本最小的路径 单点最短路径 在加权有向图中 给出一个起点 s 找到是否有一条到顶点 v 的路径 如果有 找出权重最小的那条 最短路径的性质 路径是有向的 权重不定表示距离 并不是所有顶点都是可达的
  • 【Javascript】数组拼接的两种方法

    数组拼接的两种方法 1 改变原数组 1 push 扩展运算法 1 不改变原数组 1 concat 2 扩展运算符 1 改变原数组 1 push 扩展运算法 利用push搭配扩展运算符的方法 arr2经过扩展运算符 由 3 4 5 变成3 4

随机推荐

  • 博途V11.0中如何编程模拟量转换步骤

    https blog csdn net u011402289 article details 90041534
  • MATLAB下配置C和C++编译器(MinGW)

    很多时候需要在Matlab下使用C或C 边写的代码 这时候就需要先用编译器将代码编译成Matlab可以用的mex文件 检测Matlab有没有可以使用的编译器 可以在命令行窗口下 输入mex setup 如果有的话就会显示出可以用的编译器 无
  • Python工程师常见的30个基础面试题

    一 Python 的特点和优点是什么 Python 是一门动态解释性的强类型定义语言 编写时无需定义变量类型 运行时变量类型强制固定 无需编译 在解释器环境直接运行 优点 1 解释性 Python 语言写的程序 不需要编译成二进制代码 可以
  • 【TVM 学习资料】使用 TVMC Python 入门:TVM 的高级 API

    本篇文章译自英文文档 Getting Starting using TVMC Python a high level API for TVM 作者是 Jocelyn Shiue 更多 TVM 中文文档可访问 TVM 中文站 本节将介绍针对
  • 启动VMware虚拟机显示:物理内存不足无法使用的五种解决方法

    http www jb51 net os other 267942 html 打开虚拟机时提示报错 物理内存不足 无法使用配置的设置开启虚拟机 解决方法如下 以下针对 Windows 8 1 的主机环境 Win7 也可能适用 方法一 1 打
  • 如何在MAC上使用VOSviewer和Pajek

    因为要写文献综述的原因 在看其他文献的时候被安利了VOSviewer和Pajek 在Window上操作是非常简单的 但是因为是MAC系统的原因 而这两个APP其实都是Window系统上的 在安装和绘图的时候出现了很多困难 在这里记录一下也方
  • 蛇形矩阵(Java)

    题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形 输入 本题有多组数据 每组数据由一个正整数N组成 N不大于100 输出 对于每一组数据 输出一个N行的蛇形矩阵 两组输出之间不要额外的空行 矩阵三角中同一行的数字用一个空格分
  • stm32 NVIC中断优先级管理

    对于中断这个概念 我喜欢用经常发生在CPU中的多线程抢占执行现象来类比 每个中断 或者说中断服务 就像是一个线程 它们根据事先定义好的运行规则运作着 所以这就引出了如何管理中断 我们应如何确定哪个中断先执行 哪个后执行 1 NVIC中断优先
  • Deepin如何添加阿里源

    进入阿里开源镜像站 https opsx alibaba com mirror 找到deepin 点击右侧的帮助 出现如下图所示界面 打开终端 输入 sudo vim etc apt sources list 点击键盘上的 insert键
  • 浅谈 vue组件传值

    一般有三种传值方式 1 父传子 2 子传父 3 兄弟组件之间通信 1 父组件向子组件传值 一般会在子组件里面定义props来做接收 这是比较常见的情况 这是父组件
  • MybatisPlus 3.5.1 代码生成器 自定义Service层

  • 使用RabbitMQ定时发送消息

    如何使用消息队列去发一个定时消息 1 背景 在日常开发中 有时需要我们去定时发送消息 例如定时发送邮箱 定时发送短信等业务 此时需要我们去定制一个定时任务 可以确保在某一个时间节点上自动操作 而不用手动去设置 然后 在有些场景下 发送的消息
  • OPPO芯片公司哲库全员解散的后续...

    昨天的文章提到了OPPO的自研芯片公司哲库宣布解散 三千名员工领取了N 3的赔偿开始各奔东西 对于这背后的三千个家庭来说 无疑是坏消息 想要短时间内解决这么多人的就业问题 不是件轻松的事情 目前看来 无论是公司主体 还是员工本人 都在努力的
  • Visual Studio 2010必为程序员提供更多新机遇

    Visual Studio 2010必为程序员提供更多新机遇 今天天气太冷了 实在太冷了 外边下起大雪来 是2009年的第一场大雪 自己一个人坐在办公室实在无聊 看着外边的大雪 自己情不自禁想动起手来 想挑个话题又不知道写点什么好 最后斟酌
  • 利用几行python代码爬取全国疫情数据,全方位地图分析疫情地区分布

    爬取全国疫情数据 所用的网页连接 https api inews qq com newsqa v1 automation foreign country ranklist 可视化用到的模块 gt 戳这里下载 也可以看最后 或私信我 如果没有
  • C#访问postgresql数据库

    1 为了访问PostgreSQL数据库 需要从pgfoundry网站 下载Npgsql Net Data Provider for Postgresql的组件 https download csdn net download starhuh
  • SSE2 Intrinsics各函数介绍

    SIMD相关头文件包括 include
  • PowerDesigner设计数据库表

    1 说明 使用PowerDesigner设计数据库表 然后将表设计导出为Word文档 以及MySQL数据库对应的DDL刷库脚本 2 创建模型 首先创建概念数据模型 File gt New Model gt 选择左边的Model types
  • [Swift]错误提示:Method does not override any method from its superclass

    微信公众号 山青咏芝 shanqingyongzhi 博客园地址 山青咏芝 https www cnblogs com strengthen GitHub地址 https github com strengthen LeetCode 原文地
  • Vue 入门教程

    vue 入门 常用指令 生命周期 业务 使用 Vue 简化查询 业务 vue 实现新增 vue 核心 MVVM Model View ViewModel 实现数据的双向绑定 把编程的关注点放在数据上 入门 引入 js 文件 在 JS 代码区