😍

1.var let const
2.箭头函数

<style>
    #box {
        background: red;
        height: 40px;
        width: 80px;
    }
    #box.bgcolor  {
        background: yellow;
    }
</style>
<div id="box"></div>

 <script>
        const box = document.getElementById("box")
        box.onclick = function () {
            const obj = this;
            setTimeout(function () {
                console.log(obj)
                obj.className = 'bgcolor'
            }, 3000);

        }
</script>

<script>
    const box = document.getElementById("box");
    box.onclick = function () {
        setTimeout(() => {
            console.log(this);
            this.className = 'bgcolor';
        }, 3000);
    }
</script>

3.闭包
4.this
5.高阶函数

<script>
    let goods = [30, 80, 50, 3, 5, 1, 60, 9];
    // 取出大于10 元的商品
    let goods1 = [];
    // for (let i = 0; i < goods.length; i++) {
    //     if (goods[i] > 10) {
    //         good1.push(goods[i]);
    //     }
    // }

    for (let n of goods) {
        if (n >= 10) {
            goods1.push(n);
        }
    }
    console.log(goods1);
    let goods2 = [];
    for (let n of goods1) {
        goods2.push(n*0.5);
    }
    console.log(goods2);

    let sum = 0;
    for (let n of goods2) {
        sum += n;
    }
    console.log(sum);
</script>
// 高阶方法 filter map redu ce
<script>
    let goods = [30, 80, 50, 3, 5, 1, 60, 9];
    let goods1 = goods.filter(function (n) {
        return n >= 10;
    })
    console.log(goods1);
    let goods2 = goods1.map(function (n) {
        return n*0.5;
    })
    console.log(goods2);
    let sum = goods2.reduce(function (s, n) {
        return s+n;
    }, 0);
    console.log(sum)
    /*
    * 第一次,s参数是0, n是数组中的第一个元素
    * 第二次,s参数是第一次的回调函数返回值,n是数组的第二个元素
    * 以此类推
    * */

</script>
/*
箭头函数结合高阶函数
*/
<script>
    let goods = [30, 80, 50, 3, 5, 1, 60, 9];
    let sum = goods.filter(n => n>=10).map(n => n*0.5).reduce((s, n) => s+n); // 箭头函数, n>=10 返回n ()=> {}
    console.log(sum)
</script>

6.数据结构

<script>
    // const obj = new Set();
    // // 添加数据
    // obj.add(1);
    // console.log(obj)

    const obj = new Map();
    // 是用set方法添加, 添加键值对
    obj.set("one", "abc");
    console.log(obj)
</script>

7.模板字符串

<script>
    let name = "学习";
    let str = "这个是"+name+"一个字符串";
    let str2 = '这个是一个字符串';
    console.log(str)

    let title = "rubbon";
    let slogon = "成绩自己";

    // 模版字符串
    let jsx = `

    <title>${title}</title>
    <b>monkey</b>
    <div><i>${slogon}</i></div>
    `;
    console.log(jsx);
</script>

8.解构赋值 & 扩展运算符

<script>
    let arr = [1, 2, 3];
    let [a, b, c] = arr;
    console.log(a);
    console.log(b);
    console.log(c);

    let obj = {name: "zangsan", age: 23, sex:"female"}
    let {name, age, sex} = obj;
    console.log(name);
    console.log(age);
    console.log(sex);
// 扩展运算符
    let arr1 = [1, 2, 3]
    let arr2 = [4, 5, 6]
    let arr3 = [...arr1, 7, 8, 9, ...arr2]
    console.log(arr3);
</script>

axios异步网络请求

10.ss
11.ff
12.vv

vue 语法

  1. 计算属性
    methods和computed
  computed: {
    totalPrice: {
      get() {
        return this.books.reduce((s, n)=>s+n.price, 0);
      }
    }
  },
  methods: {
    totalPrice1() {
      let sum = 0;
      for (let i = 0; i < this.books.length; i++) {
        sum+=this.books[i].price;
      }
      return sum;
    }
  }
  totalPrice: {{totalPrice}}
  <br>
  totalPrice: {{totalPrice1()}}
  1. 事件监听
    事件对象$event


    事件监听
  2. key唯一标识
  <div>
    <input type="text" v-model="name">
    <button @click="add()">添加</button>
  </div>
<ul>
    <li @mouseenter="over(index)"
        :key="item.id" v-for="(item, index) in books"> # key唯一标识
      <input type="checkbox">
      {{index+1}}-{{item.name}}-¥{{item.price}}</li>
  </ul>
add() {
      this.books.unshift({name:this.name, price: 102, active:false});
      this.name='';
    }
  1. 双向绑定和单向绑定
  <input type="text" v-model="msg">
  <br>
  {{msg}}
export default {
  name: "App.vue",
  data() {
    return {
      msg: "this is test..."
    }
  }
}
  <input type="text" :value="msg">
  <br>
  {{msg}}

  <input type="text" :value="msg" @input="change"> #这里使用了:value单向绑定,但是用@input绑定数据
  <br>
  <input type="text" :value="msg" @input="msg=$event.target.value">
<br>
  {{msg}}
  methods: {
    change(event){
      this.msg = event.target.value; // event是一个事件。取input里面的数据,实现双向绑定
      console.log(event)
    }
  }
v-model
  1. 练习


    购物车
  2. Vue父子组件之间的通信


    image.png
<div class="left">
      {{num}}
<!--      父组间在使用子组间的方法@绑定的关系,mycountevent子组件的方法-->
      <my-bar @mycountevent="demo"></my-bar>
<!--      demo是一个方法,并且有传参,但是在调用的使用不需要写成函数的形式-->
      <MyBar></MyBar>
    </div>

  methods: {
    // 父组件创建的方法
    demo(data) {
      this.num += data;
    }
  }
<div class="mybar">
  {{msg}}
  <button @click="changenum(2)">+</button>
<!--  子组间创建了一个方法changenum()-->
</div>

methods: {
    changenum(index) {
      // 子组间创建一个方法,使用this.$emit获取父组间的数据,第一个参数是父组间使用时的函数名字
      return this.$emit('mycountevent', index);
    }
  }
<!--      注意这里的父组件中是怎么使用子组建的-->
      <my-main :books="books"></my-main>
data() {
    return {
      num: 2,
      books: [
        {id:1, name:"戏说PHP", price:78},
        {id:2, name:"戏说JavaScript", price:78},
        {id:3, name:"戏说CSS", price:78},
        {id:4, name:"戏说Python", price:78},
        {id:5, name:"戏说GoLang", price:78}
      ]
    }
  } // 数据在父组件

props: ['books'], // 子组件

7.父子组件之间的访问方式


image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容