vue-day01

1前端回顾

1.1 前端的发展史(了解)

1)html(超文本标记语言) + css(层叠样式表) +js ----> 静态页面

2)jsp(javaee)/asp(.net)/php -->动态页面

3)ajax–> 局部刷新异步请求

​ 同步: (线程) 一个程序执行完之后,才能执行另外一个程序

​ 异步: 不用等待上一个程序执行,并行执行其他内容

​ 局部刷新: 不是整个页面去刷新,只刷新局部

​ 怎么实现局部刷新原理: 异步操作的时候,有回调函数,通过这个回调函数来完成局部刷新

4)jquery --> 它是js的框架 js封装出来的框架 write less do more

5)h5(html5)

6)nodejs(相当js的后台服务) /npm(maven) --很多很多框架

1.2 MVVM(理解)

MVC : model(模型) view(视图) controll(控制器)

MVVM : model view view-model -->数据的双向绑定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eGzSGmin-1577533357580)(笔记.assets/image-20191228093714293.png)]

1.3 前端的框架说明

Vue.js:vue.js以轻量易用著称

React.js:vue.js和React.js发展速度最快, 集web前端与app于一身技术

AngularJS: AngularJS还是曾今老大。 用户比较比多

1.4 nodejs和npm环境(掌握)

傻瓜式安装 – 卸载 在安装

2 ES6

ECMAScript是浏览器脚本语言的规范,可以狭义理解是javascript的规范

ES6就是javascript用的最多语言规范.被各个浏览器实现了.

2.1 ES6的语法(掌握)

(1)语法1 (掌握)

let相较于var,他是块级的。

// (1)let 它是块级 局部变量, var 不是块级  全局变量
for(var i=0;i<10;i++){
    console.log(i);
}
console.log("------i----------")
console.log(i);
console.log("============")
for(let j=0;j<10;j++){
    console.log(j);
}
console.log("------j----------")
console.log(j);

(2)const 一旦有值就不能修改(掌握)

// const i=10;
//i=11;

(3)解构表达式(掌握)


//(3)解构表达式--数组解构
/*
let arr = [1,2,3];
//解构表达式
let [a1,a2,a3]=arr; // let a1 = arr[0],a2=arr[1]
console.log(a1,a2,a3);
console.log(a3);
*/

//对象解构
// let obj = {"name":"信哥","age":18};
// let {name,age} = obj;
// console.log(name+"年龄是:"+age);

(4)箭头函数(掌握)

/*var obj = {
    eat:function(){
        console.log("键哥中午吃饭");
    },
    eat1(){
        console.log("键哥早上喝奶")
    },
    eat2:(food)=>{
        console.log("键哥晚上吃"+food+"不用牙齿吃")
    }
}*/

/*
obj.eat();
obj.eat1();
obj.eat2("香蕉");*/

console.log("-----------------------------------");
//箭头+解构一起使用
/*var say = ({name})=> console.log("我是"+name);
var obj1 = {
    name:"王天霸"
}
say(obj1);*/

(5)模块化(今日了解–后面掌握用法)

import / export

3 Vue

3.1 什么是Vue

(1)Vue是构建界面的渐进式的js框架

(2)只关注视图层, 采用自底向上增量开发的设计。

(3)Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 --数据双向绑定

一句话:vue就是做界面的js框架 (jquery/easyui)

3.2 vue怎么使用(掌握)

(1)在项目里面 运行 npm install vue

(2)在页面引入vue.js

<script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>

(3)测试代码

<body>
    <div id="app">
        {{name}}
    </div>
<script>
    new Vue({
       el:"#app",
        data:{
           name:"xxxx"
        }
    });
</script>

3.3 el挂载(掌握)

el:挂载,把vue这个对象 挂载到对应的标签上面去

el方式:

​ (1)id的方式进行挂载

<body>
    <div id="app">
        {{name}}
    </div>
<script>
    new Vue({
       el:"#app",
        data:{
           name:"xxxx"
        }
    });
</script>

(2) class方法进行挂载

<body>
    <div class="app">
        {{name}}
    </div>
<script>
    new Vue({
       el:".app",
        data:{
           name:"xxxx"
        }
    });
</script>

3.4 data数据(掌握)

data:放字符串 对象 和数组 都OK

 var app = new Vue({
        el:"#app",
        data:{
            name:"xxxx",
            user:{
               name:"信信",
                age:18,
                hobby:["和何亮打野","和金国打野"]
            }
        }
    });

3.5 methods方法(掌握)

方法methods:

 var app = new Vue({
        el:"#app",
        data:{
            name:"xxxx",
            user:{
               name:"信信",
                age:18,
                hobby:["和何亮打野","和金国打野"]
            }
        },
        methods:{
           eat(food){
               console.log("何亮今天中午吃"+food)
           },
            drink(){
                console.log("何亮今天中午喝什么呀")
            }
        }
    });

3.6 Vue生命周期

vue对象 从出生 到死亡 经过这个过程 就叫生命周期

vue生命周期里面钩子方法:

created:(掌握)

​ 表示创建完vue对象的时候,执行内容

mounted:(掌握) – window.onload

​ 表示页面所有的内容 加载完之后,执行内容

var app = new Vue({
        el:"#app",
        data: {
            name: "xxxx",
            user: {
                name: "信信",
                age: 18,
                hobby: ["和何亮打野", "和金国打野"]
            }
        },
        methods:{
           eat(food){
               console.log("何亮今天中午吃"+food)
           },
            drink(){
                console.log("何亮今天中午喝什么呀")
            },
            getEmloyees(){
               console.log("发送请求查询员工")
            }
        },
        created(){
            //创建完之后 执行该内容
            console.log("--------11111111---")
        },
        mounted(){
            //渲染完之后 执行该内容
            console.log("--------222222222---");
            this.getEmloyees();
        }
    });

钩子环节

​ created创建对象 --> 渲染标签内容 – >mounted挂载完 -->destory销毁

重点:

​ created/mounted

3.7 数据的双向绑定 初体验

<body>
    <div id="app">

        <input type="text" v-model="msg" v-on:change="changeData"/>
        {{msg}}

    </div>


<script>
    var app = new Vue({
        el:"#app",
        data: {
            name: "xxxx",
            msg:"test"
        },
        methods: {
            changeData(){
                console.log(this.msg);
            }

        }

    });

</script>

</body>

4 vue指令-v-text/v-html(重点)

指令:vue提供的特殊的标签属性 , 不同的指令会产生不同的效果

<span v-text="name"></span>
        <span v-text="user.name"></span>
        <span v-html="user.name"></span>

  //v-text等效于innerText /v-html 等效于 innerHTML
    var app = new Vue({
        el:"#app",
        data: {
            name: "<h1>xxxx</h1>",
            user:{
                name:"<h2>yyyy</h2>"
            }

        }
    });

5 vue指令-v-for(重点)

循环

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入vue.js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
    <div id="dlg">
        循环数组
        <ul>
        <li v-for="hobby in hobbys">
            {{hobby}}
        </li>
    </ul>
        <hr>

        循环对象
        <ul>
            <li v-for="user in user">
                {{user}}
            </li>
        </ul>
        <hr>
        带索引循环数组
        <ul>
            <li v-for="(hobby,index) in hobbys">
                {{hobby}}---------{{index}}
            </li>
        </ul>
        <hr>
        <ul>
            <li v-for="(hobby,index) in hobbys1">
                {{hobby}}---------{{index}}
            </li>
        </ul>
        <hr>
        循环对象value key  index
        <ul>
            <li v-for="(value,key,index) in user">
                {{key}} ---- {{value}} ---- {{index}}
            </li>
        </ul>
        <hr>
        循环json数据
        <table>
            <tr>
                <th>id</th>
                <th>name</th>
                <th>age</th>
                <th>sex</th>
            </tr>
            <tr v-for="student in students">
                <td>{{student.id}}</td>
                <td>{{student.name}}</td>
                <td>{{student.age}}</td>
                <td>{{student.sex}}</td>

            </tr>
        </table>

    </div>

<script>
    new Vue({ 
        el:"#dlg",
        data: {

            user:{
                name:"涛哥",
                age:18,
                sex:"female"
            },
            hobbys:["打野","吃","打篮球","喝饮料"],
            hobbys1:["打野","吃","打篮球","喝饮料"],
            students: [
                {id:1,name: "刘备", age: 29, sex: "男"},
                {id:2,name: "貂蝉", age: 30, sex: "女"},
                {id:3,name: "吕布", age: 31, sex: "男"}
            ]
        }
    });

</script>

</body>
</html>

6 vue 指令 -v-bind(重点)

绑定的标签里面属性的值

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入vue.js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
    <div id="dlg">
        <img width="100" src="img/11.jpg">
        <img width="100" v-bind:src="imgSrc">
        <img width="100" :src="imgSrc">
        <input type="text" name="username">
        <input v-bind="props"/>
    </div>

<script>
    new Vue({
       el:"#dlg",
        data: {
            imgSrc:"img/11.jpg",
            props:{
                type:"text",
                name:"username"
            }
        }
    });

</script>

</body>
</html>

7 vue 指令 -v-show(重点)

控制display这个属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入vue.js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
    <div id="dlg">
        <div v-show="show">撒低级啊是多久啊拉开圣诞节?</div>
        <div v-show="hidden">撒低级啊是多久啊拉开圣诞节?</div>
        <div v-show="score>80">撒低级啊是多久啊拉开圣诞节?</div>
    </div>

<script>
    new Vue({
       el:"#dlg",
        data:{
            data: {
                "show":true,
                "hidden":false,
                "score":90
            }
        }
    });

</script>

</body>
</html>

8 vue 指令 -v-if/else(重点)

如果不成立 ,在页面无法看到

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入vue.js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <!-- false :v-show控制display属性  v-if 不显示 -->
    <!--  if
       <div v-if="age < 18">靖哥哥你是未成年</div>
       <div v-if="age > 18">靖哥哥成年,可以工作了</div>-->

    <!-- if else
    <div v-if="age < 18">靖哥哥你是未成年</div>
    <div v-else>靖哥哥成年,可以工作了</div>-->

    <!-- if elseif elseif  else-->
    <div v-if="age<18">啊是当今世界</div>
    <div v-else-if="age>18 && age<50">撒大苏打</div>
    <div v-else>按时打卡上来看大家了</div>

</div>


<script>

    //v-text等效于innerText /v-html 等效于 innerHTML
    var app = new Vue({
        el:"#app",
        data: {
            "show":true,
            "hidden":false,
            "age":20,
        }


    });

</script>

</body>
</html>

9 vue 指令 -v-model(重点)

控制标签里面value 完成双向绑定

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入vue.js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
</head>
<body>

    <div id="dlg">
        (1)绑定普通的字符串值
        <input v-model="inputValue">
        {{inputValue}}
        <hr>

        (2)绑定到type=checkbox的input表单元素
        <br>
        打篮球:<input type="checkbox" v-model="checkboxValue" value="打篮球"><br/>
        踢足球:<input type="checkbox" v-model="checkboxValue" value="踢足球"><br/>
        data中的值:{{checkboxValue}}
        <hr>

        (3)绑定到type=radio的input表单元素
        <br>
        打篮球:<input type="radio" v-model="radioValue" value="打篮球"><br/>
        踢足球:<input type="radio" v-model="radioValue" value="踢足球"><br/>
        data中的值:{{radioValue}}
        <hr>

        (4)绑定到文本域的值
        <br>
        <textarea v-model="textAreaValue"></textarea>
        data中的值:{{textAreaValue}}
        <hr>
        (5)下拉的值
        <br>
        <select v-model="skills">
            <option value="rap">rap</option>
            <option value="唱"></option>
            <option value="跳"></option>
        </select>
        <hr>
    </div>

<script>
    new Vue({
       el:"#dlg",
        data: {
            inputValue:"你好不好!",
            checkboxValue:["踢足球"],
            radioValue:"打篮球",
            textAreaValue:"丁靖和杰哥是同桌",
            skills:"唱"

        }
    });

</script>

</body>
</html>

发布了28 篇原创文章 · 获赞 15 · 访问量 1139

猜你喜欢

转载自blog.csdn.net/W1184394406/article/details/103747796
今日推荐