day06

A.今天学到了什么

1.面向对象编程
    <script>
        // 构造函数  es6之前没有类的概念  用构造函数来模拟类
        function person(age,name){
            this.age=age;
            this.name=name;
        }
        // js的继承是基于原型的继承
        person.prototype.say=function(){
            console.log(this.name+" "+this.age);
        }
        var xuao=new person(22,"xuao");
        console.log(xuao.name);
        xuao.say();
        // 每一个对象都有一个__proto__属性,指向他的原型对象,共享原型上的属性或方法;
        console.log(xuao.__proto__);
        console.log(xuao.__proto__==person.prototype);
        console.log(person.prototype.__proto__);
    </script>
2.继承
    <script>
        Array.prototype.eat=function(){
            alert("吃");
        }
        var a=[];
        a.eat();
    </script>
3.改变this指向

    <script>
        // call apply bind  可以改变this的指向
        var name = "xiaoming";
        function show() {
            console.log(this.name);
        }
        var zhang = {
            name: "zhang"
        }
        show();
        show.call(zhang);
        show.apply(zhang);
        // call改变函数内部this关键字的指向
        // call和apply的区别    call正常传参 ,apply的参数必须是数组
        function show1(a, b) {
            console.log(a + b);
            console.log(this.name)
        }
        // show1(1,2);
        show1.call(zhang, 1, 2);
        show1.apply(zhang, [1, 2]);  
    </script>
4.bind
    <button id="btn">btn</button>
    <p id="p">p</p>
    <script>
        var btn=document.getElementById("btn");
        var p=document.getElementById("p");
        btn.onclick=function(){
            console.log(this.id);
        }.bind(p);
    </script>    
5.定时器的指向问题
 <p id="p">p</p>
    <button id="btn">btn</button>
    <script>
        var id="world";
        var p=document.getElementById("p");
        var btn=document.getElementById("btn");
        // 函数作为普通函数调用的时候this指向window
        btn.onclick=function(){
            setTimeout(function(){
                alert(this.id)
            }.bind(this),1000)
        }
    </script>
6.箭头函数
    <button id="btn">btn</button>
    <script>
        var id = "world";
        var btn = document.getElementById("btn");
        // 函数作为普通函数调用的时候this指向window
        btn.onclick = function () {
            setTimeout( ()=> {
                alert(this.id)
            }, 1000)
        }
        // btn.onclick = function () {
        //     var self=this;
        //     setTimeout(function() {  
        //         alert(self.id)
        //     }, 1000)
        // }
    </script>
7.继承
   <script>
        function person(name,age){
            this.name=name;
            this.age=age;
        }
        person.prototype.say=function(){
            console.log(this.name+" "+this.age)
        }
        function teacher(name,age){
            person.call(this,name,age)
        }
        teacher.prototype=new person();
        var xiaoming=new teacher("xiaoming",22);
        xiaoming.say();
    </script>
8.继承的其他方法
   <script>
        class person{
            constructor(name,age){
                this.name=name;
                this.age=age;
            }
            say(){
                console.log(this.name+" "+this.age);
            }

        }
        class teacher extends person{
            constructor(name,age,sex){
                super(name,age);
                this.sex=sex
            }
            eat(){
                console.log(this.sex+"1111")
            }

        }
        let xiaozhang= new teacher("xiaozhang",23,"男")
        let xiaoming=new person("xiaoming",22);
        xiaoming.say();
        xiaozhang.eat();
    </script>
9.方法的简写
 <script>
        var obj={
            go:function(){
                console.log("go");

            },
            // 简写
            eat(){
                console.log("eat");
            }
        }
        obj.eat();
    </script>
10.node.js
11.babeltest

详情见网上教程

12.vue.js
12.1用法
    <p id="test">
        <!-- 挂载点里的内容:模板 -->
        {{msg}}
    </p>
    <script>
        // 实例  只会渲染挂载点里的内容
        new Vue({
        // 挂载点
            el:"#test",
            data:{
                msg:"hello world"
            }
        })
    </script>
12.2模板写在实例中
    <div id="root">
    </div>
    <!-- 模板写在实例中 -->
    <script>
        new Vue({
            el: "#root",
            template: "<div>{{msg}}</div>",
            data: {
                msg: "hello world"
            }
        })
    </script>
12.3事件
  <div id="root">
        <!-- 触发的事件定义的方法,放在实例中的methods方法中 -->
        <!-- v-on:click可以简写为@click  -->
        <div v-on:click="handleClick">{{content}}</div>
        <div @click="handleClick">{{content}}</div>

    </div>
    <script>
        new Vue({
            el: "#root",
            // template:"<div>{{msg}}</div>",
            data: {
                content: "hello world"
            },
            methods: {
                handleClick: function () {
                    //this.content指vue实例下的data下的content
                    this.content = "hello world"
                }
            }
        })
    </script>
12.4属性绑定
 <div id="root">
        <!-- v-bind:title表示title这个属性和data里的title绑定 -->
        //
        <div v-bind:title="title">hello world</div>
        <div :title="title">hello world</div>
    </div>
    <script>
        new Vue({
            el: "#root",
            data: {
                title: "this is hell0"
            }
        })
    </script>
12.5双向数据绑定
    <div id="root">
        <!-- v-model这个模板指令表示双向数据绑定 -->
        <input type="text" v-model="content">
        <div>{{content}}</div>

    </div>
    <script>
        new Vue({
            el: "#root",
            data: {
                content: "hello world"
            }
        })
    </script>
12.6计算属性
    <div id="root">
        <input type="text" v-model="firstName">
        <input type="text" v-model="lastName">
       
        <p>{{firstName}}{{lastName}}</p>
    </div>
    <script>
        new Vue({
            el: "#root",
            data: {
               firstName:"xx",
               lastName:"yy"
            }
        })
    </script>
12.7侦听器
    <!-- 对姓名作任意变更,count加一 -->
    <div id="root">
        <input type="text" v-model="firstName">
        <input type="text" v-model="lastName">
        <div>{{fullName}}</div>
        <div>{{count}}</div>
    </div>
    <script>
        // 侦听数据的变化 做出相对的业务逻辑
        new Vue({
            el:"#root",
            data:{
                firstName:'',
                lastName:'',
                count:0
            },
            computed:{
                fullName:function(){
                    return this.firstName+" "+this.lastName;
                }
            },
            watch:{
                firstName:function(){
                    this.count++;
                },
                lastName:function(){
                    this.count++;
                }
            }
        })
    </script>
12.8 v-if
   <div id="root">
        <div v-if="show">hello world</div>
        <button @click="handleClick">toggle</button>
    </div>
    <script>
        new Vue({
            el:"#root",
            data : {
                show:true,
            },
            methods : {
                handleClick : function(){
                   this.show=!this.show;
                }
            }
        })
    </script>
12.9 v-test
    <div id="root">
        <!-- v-test 把所有的内容当成文本去渲染
                 v-html  把数据当成html标签去渲染 -->
        <h1 v-html="msg"></h1>
    </div>
    <script>
        new Vue({
            el: "#root",
            // template:"<div>{{msg}}</div>",
            data: {
                msg: "<h1>hello world</h1>",


            }
        })
    </script>

B.补充

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

推荐阅读更多精彩内容