1. JS + Vue + Ajax

1. JS + Vue + Ajax

一、JS

1. JS引入方式

        内部脚本:定义在<body>的底部

        外部脚本:定义在JS文件中,通过<script src=""></script>标签引入

2. JS基础语法

2.1 变量/常量

特点:JS是弱类型语言,变量可以存放不同类型的值

声明:

        let:声明变量

        const:声明常量,一旦声明,常量的值不能改变

注意:

        在早期的js中,声明变量还可以使用var,但是并不严谨(不推荐)

2.2 输出语句

        window.alert():弹出警告框(使用频次较高)

        console.log():写入浏览器控制台(使用频次较高)

        document.write():向HTML的body内输出内容

2.3 基本数据类型

        number、boolean、null、undefined、string

2.4 反引号

        应用场景:字符串拼接

2.5 JS函数

        定义

<script>

    //具名函数
    function add(a, b) {
      return a + b;
    }

    let result = add(10, 20.2);
    console.log(result);

    //匿名函数
    //函数表达式
    let add = function (a, b) {
      return a + b;
    }
    let result = add(100, 200);
    console.log(result);

    //箭头函数
    let add = (a, b) => {
      return a + b;
    }
    let result = add(10, 300)
    console.log(result);

</script>

注意:JS是弱类型语言,定义函数时,无需指定形参、返回值类型。

2.6 自定义对象

<script>

    //自定义对象
    let user = {
      name: 'Tom',
      age: 18,
      gender: '男',
      //定义对象中的方法时,不要用箭头函数
      sing: function () {
        alert(this.name + '唱歌');
      }
      //简写
      sing() {
        alert(this.name + '唱歌');
      }
    }

    //调用对象属性/方法
    alert(user.name);
    user.sing();

</script>

2.7 JSON

2.7.1 格式特点

        key必须使用双引号引起来

2.7.2 JSON对象的两个方法
<script>

    //JSON.stringify():将js对象转为json字符串
    let student = {
      name: '张三',
      age: 18,
      gender: 23
    }
    alert(JSON.stringify(student));

    //JSON.parse():将json字符串转为js对象
    let personJSON = '{"name": "heima", "age": 18}';
    alert(JSON.parse(personJSON).name);
    
  </script>

3. DOM

3.1 DOM介绍

3.1.1 什么是DOM

• 文档对象模型,用于操作网页内容

3.1.2 如何获取DOM对象

        document.querySelector('选择器')

        document.querySelectorAll(‘选择器’)

3.1.3 代码演示
<body>

  <h1 id="title1">11111</h1>
  <h1>22222</h1>
  <h1>33333</h1>

  <script>

    //1.修改第一个<h1>的文本内容
    //1.1 获取DOM对象
    //获取匹配到的第一个元素
    let h = document.querySelector('#title1');
    let h1 = document.querySelector('h1');//获取第一个标签
    //获取匹配到的所有元素
    let hs = document.querySelectorAll('h1');

    //1.2 调用DOM对象中的属性和方法
    hs[0].innerHTML = '修改后的文本内容';

  </script>
</body>

3.2 事件监听

3.2.1 语法

        事件源.addEventListener('事件类型',要执行的函数)

<script>
    
    //事件监听
    document.querySelector('#btn1').addEventListener('click', () => {
      console.log(1);
    })

    //事件监听(早期写法)
    document.querySelector('#btn2').onclick = () =>{
      console.log(2);
    }

</script>

JS案例-员工列表

<script>

        //通过JS为上述的表格中数据行添加事件监听, 实现鼠标进入后, 背景色#f2e2e2; 鼠标离开后, 背景色需要设置为#fff; (JS新版本的语法)
        let tr = document.querySelectorAll('tr'); //获取所有的行        
        for (let i = 0; i < tr.length; i++) {
            tr[i].addEventListener('mouseenter', () => {
                tr[i].style.backgroundColor = '#f2e2e2';
            })
            tr[i].addEventListener('mouseleave', () => {
                tr[i].style.backgroundColor = '#fff';
            })
        }

</script>
3.2.2 常见事件
3.2.3 JS模块化

二、Vue

渐进式JavaScript 框架,用于提高前端开发效率。

1. Vue的使用步骤

2. Vue常用指令

HTML页面中带有 v- 前缀的特殊属性

2.1 v-for指令

        作用:列表渲染,遍历容器的元素

        语法:<h1 v-for="(item,index) in items" :key="item.id">

        • 注意:想让哪个标签遍历展示多次,指令就加在哪个标签上

2.2 v-bind指令

        • 场景:动态为标签属性绑定值(插值表达式,不能在标签内使用)

        • 语法:v-bind:属性="变量"/:属性="变量"

2.3 v-if与v-show指令

1.v-if 与v-show 的作用?

        • 根据条件判断,是否展示某元素

2.v-if 与v-show 的区别?

        v-if:条件不成立,直接不渲染这个元素(不频繁切换的场景)

        v-show:通过css样式,来控制元素的展示与隐藏(频繁切换的场景)

2.4 v-model指令

        • 作用:表单元素上进行双向数据绑定,用于获取或设置表单项数据

        • 注意:v-model="变量",变量必须在data中声明

2.5 v-on指令

        作用:事件绑定

        语法:v-on:click="..."/@click="..."

三、Ajax

3.1 Ajax作用

        1. 与服务器进行数据交换

        2. 异步交互

3.2 异步同步

3.3 Axios

3.3.1 入门程序

<body>

  <button id="getData">GET</button>
  <button id="postData">POST</button>
  
  // 引入Axios文件
  <script src="https://unpkg.***/axios/dist/axios.min.js"></script>
  <script>
    //GET请求
    document.querySelector('#getData').onclick = function() {
      axios({
        url:'https://mock.apifox.***/m1/3083103-0-default/emps/list',
        method:'get'
      }).then(function(res) {
        console.log(res.data);
      }).catch(function(err) {
        console.log(err);
      })
    }
    
    //POST请求
    document.querySelector('#postData').onclick = function() {
      axios({
        url:'https://mock.apifox.***/m1/3083103-0-default/emps/update',
        method:'post'
      }).then(function(res) {
        console.log(res.data);
      }).catch(function(err) {
        console.log(err);
      })
    }
  </script>
</body>

3.3.2 get 和 post 请求

1. get 请求:获取数据

axios.get("https://mock.apifox.***/m1/3083103-0-default/emps/list").then(result => {
    console.log(result.data);
})

2. post 请求:提交数据

axios.post("https://mock.apifox.***/m1/3083103-0-default/emps/update","id=1").then(result => {
    console.log(result.data);
})

3.4 异步获取数据

可以通过async、await可以让异步变为同步操作。async就是来声明一个异步方法,await是用来等待异步任务执行

  async search() {
    //基于axios发送异步请求,请求https://web-server.itheima.***/emps/list,根据条件查询员工列表
    const result = await axios.get(`https://web-server.itheima.***/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`);
    this.empList = result.data.data;
  },

3.5 案例完善

需求:页面加载完毕,就查询出员工列表

    methods: {
      async search() {
        //基于axios发送异步请求,请求https://web-server.itheima.***/emps/list,根据条件查询员工列表
        const result = await axios.get(`https://web-server.itheima.***/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`);
        this.empList = result.data.data;
      },
      clear() {
        this.searchForm= {
          name: '',
          gender: '',
          job: ''
        }
        this.search();
      }
    },
    // 页面加载完毕后执行
    mounted() {
      this.search();
    }
  }).mount('#container')

‌​‌‬​​‌‍​‌​‬​​​‍⁠⁠​​​​​​​​​​​​​​​‍​​‍​​​‬​‌​​​02-前端Web开发(JS+Vue+Ajax) - 飞书云文档

转载请说明出处内容投诉
CSS教程网 » 1. JS + Vue + Ajax

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买