当前位置: 首页 > news >正文

javaSE学习(前端基础知识)

文章目录

  • 前言
  • 一、HTML
    • 1、< th >、< tr > 和 < td >标签:
    • 2、< button > 标签:
    • 3、< input type="text" >:
    • 4、< br >:
  • 二、CSS
    • 1、选择器
    • 2、声明块
    • 3、常用属性及值
  • 三、JS
    • 1、Vue 实例对象:
    • 2、@click 指令:
    • 3、v-for 指令:
    • 4、:key 绑定:
    • 5、v-model 指令:
    • 6、axios.请求().then(以axios.get为例):
    • 7、data的理解:
    • 8、箭头函数:
    • 9、prompt、alert和confirm的区别
  • 四、完整代码展示
  • 结语

前言

HTML、CSS 和 JavaScript 是网页开发的三大核心技术,它们之间存在着紧密的关系,各自有着不同的职责和用途。HTML 负责构建网页的基本结构内容框架,CSS 用于设定网页的样式和布局以美化页面外观,JavaScript 为网页添加动态效果和交互行为使其更加灵活和生动。

一、HTML

1、< th >、< tr > 和 < td >标签:

在 HTML 里,< th >、< tr > 和 < td >都是用于构建表格的标签:

< tr >“table row” 的缩写,代表表格的行。一个 < tr > 标签就对应表格中的一行数据。在 < table > 标签内部使用 < tr > 标签来创建表格的行结构;
< th >“table header” 的缩写,用于定义表格的表头单元格。在 < tr > 标签内部使用 < th > 标签来创建表头单元格;
< td >“table data” 的缩写,用来定义表格中的单元格,也就是表格里实际显示数据的地方。通常要放在 < tr > 标签内部,每一个 < td > 标签对应表格中的一个单元格。

2、< button > 标签:

< button > 是 HTML 中的标准标签,用于创建一个按钮元素。

3、< input type=“text” >:

< input > 是 HTML 里用于创建表单输入元素的标签。

type=“text” 明确了输入框的类型为文本输入框,用户能够在其中输入任意文本内容。
text写成password就会以掩码形式(星星或圆点)出现。

4、< br >:

换行标签。

二、CSS

CSS可以通过三种方式引入到 HTML 页面中:

1、内联样式,直接在 HTML 元素的 style 属性中编写 CSS 样式;
2、内部样式表,在 HTML 页面的 < head > 标签内使用 < style > 标签定义 CSS 样式;
3、外部样式表,将 CSS 代码写在独立的 .css 文件中,然后在 HTML 页面的 < head > 标签内使用 < link > 标签引入该文件。

CSS常用语法如下:

1、选择器

选择器用于指定 CSS 样式要应用到的 HTML 元素,以下是几种常见选择器:

  • 元素选择器:通过元素名称选择 HTML 元素。
p {
    color: blue;
}//将所有 <p> 标签内的文本颜色设置为蓝色。
  • 类选择器:使用 . 开头
.highlight {
    background-color: yellow;
}//HTML 中使用 class="highlight" 的元素背景颜色会变为黄色。
  • ID 选择器:使用 # 开头
#header {
    font-size: 24px;
}//id="header" 的元素字体大小会被设为 24px。
  • 属性选择器:根据元素的属性及其值来选择元素。
input[type="text"] {
    border: 1px solid gray;
}//给所有 type 属性为 text 的 <input> 元素添加灰色边框。

2、声明块

由一对花括号 { } 包裹,包含一个或多个声明,每个声明由属性和值组成,用冒号 : 分隔,声明之间用分号 ; 分隔。

p {
    color: red;
    font-size: 16px;
}

3、常用属性及值

  • 文本相关
    color:设置文本颜色。
    font-size:设置字体大小。常用单位:像素px
  • 盒模型相关
    width 和 height:设置元素的宽度和高度。
    margin:设置元素的外边距,即元素与其他元素之间的距离。
    padding:设置元素的内边距,即元素内容与边框之间的距离。
    border:设置元素的边框
  • 背景相关
    background-color:设置元素的背景颜色。
    background-image:设置元素的背景图像。
div {
    background-image: url('image.jpg');
}

三、JS

1、Vue 实例对象:

Vue 实例对象本质上是 JavaScript 对象,Vue.js 基于JavaScript 编写的一个前端框架。new Vue() 会创建一个新的 Vue 实例,传入配置对象:el、data、methods 等属性。

el: 用于指定 Vue 实例的挂载点;
data: 用于定义实例的数据,初始化数据;
methods: 用于定义实例的方法。
mounted: 生命周期钩子

格式示例如下:

new Vue({
    el: '#app',
    data: {
        message: 'Hello, Vue!',
        count: 0
    },
    mounted:{
    },//生命周期钩子
    methods: {
        greet() {
            alert(this.message);
        },
        increment() {
            this.count++;
        }
    }
});

2、@click 指令:

@click 是 Vue.js 中的事件绑定指令,它是 v-on:click 的缩写形式。v-on 指令用于监听 DOM 事件,而 @click 则专门用于监听鼠标点击事件。当用户点击这个按钮时,就会执行 @click 后面指定的表达式或方法。

3、v-for 指令:

v-for 是 Vue.js 提供的一个用于循环渲染的指令,可以动态生成表格行

语法格式: item in items;
items: 是一个数组或对象(通常是Vue 实例 data 选项中的一个数组,通过 axios 从后端获取数据后赋值给 depts):
item: 是当前循环到的数组元素或对象属性。

4、:key 绑定:

:key 是一个特殊的属性,用于给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素。保证了渲染效率和准确性。

5、v-model 指令:

v-model 是 Vue.js 提供的一个非常实用的指令,它实现了表单输入元素和 Vue 实例数据之间的双向绑定

<div id="user">
    <input type="text" v-model="newDept.name"><br>
    <button @click="addDept">添加</button>
</div>

v-model=“newDept.name” 表明输入框的内容和 newDept.name 属性绑定。newDept 是 Vue 实例 data 选项里定义的一个对象,name 是该对象的一个属性。

6、axios.请求().then(以axios.get为例):

loadDepts(){
        axios.get('http://localhost:8080/selectAll').then(
           response=>{
           this.depts=response.data.data;//Javascript不加;也是可以的
                    }
        )
}

axios.get 方法: 返回一个 Promise 对象,是用于处理异步操作的对象,它有三种状态:进行中pending、已成功fulfilled和已失败rejected
then : 是 Promise 对象的一个方法,用于处理 Promise 成功的情况,它接受一个回调函数作为参数。

7、data的理解:

服务器返回的data字段: 在使用 axios 发送请求并获取服务器响应时,服务器返回的数据通常会包含在响应对象response的 data 字段中。
Vue实例中的data: 在 Vue 中,data 是一个选项,用于定义 Vue 实例的数据对象。
response.data.data中: 第一个 data 是 axios 响应对象的属性,用于获取服务器返回的整体数据;第二个 data 是服务器返回数据中的一个字段,用于获取具体需要的数据。

8、箭头函数:

response => { 
    this.depts = response.data.data; 
}

语法形式:(参数列表) => { 函数体 };
使用时机: 当 axios.get 发起的请求成功完成,服务器返回响应后,Promise 对象的状态会从 pending 变为 fulfilled。此时,then 方法中传入的回调函数就会被调用;
优点: 语法简洁。

传统函数定义方式:

function(response) {
    this.depts = response.data.data;//将服务器返回的数据中的data字段赋值给this.depts
}

9、prompt、alert和confirm的区别

他们都是 window 对象的方法:

alert: 警告框。没有返回值,仅用于展示信息;
confirm: 对话框。返回一个布尔值,点击 “确定” 返回 true,点击 “取消” 返回 false。
prompt: 输入框。两个参数:提示信息和默认值。点击 “确定”,函数返回输入的文本;点击 “取消”,返回 null。

补充一个小点:
let具有块级作用域,即变量只在声明它的代码块内有效。

四、完整代码展示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>部门信息列表</title>
<!--    vue的核心库vue2.0 渲染数据-->
<!--    <script src="https://cdn.staticfile.net/vue/2.2.2/vue.min.js"></script>-->
    <script src="js/vue2.js"></script>     <!--保存到本地加载比较快-->
<!--    axios库-->
<!--    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>-->
    <script src="js/axios.js"></script>
    <style>
        #app table{//这是一个组合选择器,它表示选择 id 为 app 的元素内部的所有 <table> 元素
            border:solid 1px red;
            margin:0 auto;
            width:700px;
            font-size:20px;
            border-collapse:collapse;
        }
        tr,td{
            border:solid 1px red;
        }
    </style>
</head>
<body>
<div id="app">
    <div id="user">
        <input type="text" v-model="newDept.name"><br>
<!--        br换行-->
        <button @click="addDept">添加</button>
    </div>
    <table>
        <tr>
            <th>ID</th>
            <th>部门名称</th>
            <th>创建时间</th>
            <th>更新时间</th>
            <th>操作</th>
        </tr>
        <tr v-for="dept in depts":key="dept.id">
            <td>{{dept.id}}</td>
            <td>{{dept.name}}</td>
            <td>{{dept.createTime}}</td>
            <td>{{dept.updateTime}}</td>
            <td>
                <button @click="deleteDept(dept.id)">删除</button>
                <button @click="updateDept(dept.id)">更新</button>
            </td>
<!--            td是单元格-->
        </tr>
    </table>
</div>
<!--上面是css,下面是js-->
<script>
    new Vue({
        el:"#app",//这里的 '#app' 是一个 ID 选择器,表示 Vue 实例会挂载到 HTML 文档中 id 为 app 的元素上。
        data:{
            newDept:{name:""},
            depts:[]//渲染的数据
        },
        mounted(){//生命周期钩子,当前页面完整加载之后执行
           this.loadDepts();
        },
        methods:{
            //1.加载部门列表
            loadDepts(){
                axios.get('http://localhost:8080/selectAll').then(
                    response=>{
                        this.depts=response.data.data;//Javascript不加分号也是可以的
                    }
                )
            },
            //2.删除方法,请求后端删除的api
            deleteDept(id){
                if(confirm("确认删除该条记录吗?")){
                    axios.delete(`http://localhost:8080/dept/${id}`).then(
                        ()=>this.loadDepts()//重新加载
                    )
                }
            },
            //3.请求后端的添加数据接口
            addDept()
            {
                if(this.newDept.name==''){
                    alert("未添加数据");
                    return;
                }
                axios.post("http://localhost:8080/insertInfo",this.newDept).then(
                    //箭头函数、回调函数
                    ()=>{
                        this.newDept.name="";
                        this.loadDepts();
                    }
                )
            },
            //4.修改数据接口
            updateDept(id){
                axios.get(`http://localhost:8080/getOne/${id}`).then(
                    response=>{
                        let a=response.data.data;
                        console.log(a);//把数据打印到浏览器控制台
                       let newName=prompt("请输入部门新名称",a.name);//输入框

                        //构造新的对象
                        let updateDept={
                            id:a.id,
                            name:newName,
                            createTime:a.createTime,
                            updateTime:new Date().toISOString()//前端获取时间的方式
                        }
                        //发送请求
                        axios.put("http://localhost:8080/updateDept",updateDept).then(
                            ()=>{
                                this.loadDepts();//刷新页面
                            }
                        )
                    }
                )
            }
        }
    })
</script>
</body>
</html>

结语

通过对 HTML、CSS、JS 相关知识的梳理,从标签到指令,希望能帮大家了解前端基础。前端技术发展迅速,学习之路漫漫,如果有错误之处期待与大家在评论区交流,一起进步!

相关文章:

  • GD32F303----内部Flash读写
  • Pytorch深度学习框架60天进阶学习计划 - 第39天:联邦学习系统
  • [MySQL] 表的内连和外连
  • 解决【远程主机可能不符合 glibc 和 libstdc++ Vs code 服务器的先决条件】
  • 基于Axure的动态面板旋转实现抽奖转盘
  • CAD导入arcgis中保持面积不变的方法
  • K8S-证书更新时-误删除组件-
  • OpenHarmony人才认证证书
  • SpringMVC基础三(json)
  • 学习MySQL的第七天
  • 【软考系统架构设计师】信息系统基础知识点
  • python基础14 gRPC的流式(stream)传输(二)
  • 网络互连与互联网2
  • 镜像端口及观察端口的配置
  • WebPages 对象
  • 复习防火墙(二)
  • 【KWDB 创作者计划】_二进制安装部署 KWDB 踩过的坑和经验
  • 苍穹外卖|第二篇
  • Vue学习笔记 - 插件
  • js day5
  • 门户网站开发投标文件.doc/百度移动端排名软件
  • 企业网站建设ppt介绍/网络营销的定义是什么
  • 酒店网站制作/百度seo排名优化软件化
  • 公司微网站建设价格/市场营销师报名官网
  • 常德做网站专业公司/沈阳seo团队
  • 中小型网站建设资讯/网站是怎么做出来的