Vue第一天

1.MVVM

1.什么是MVVM:

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

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

2.ES6语法

语法一

let相较于var,他是块级的。也就是局部的

for (var i=0;i<5;i++){
    console.log(i);
}
console.log("==========");
console.log(i);
console.log("=======");
for (let j=0;j<5;j++){
    console.log(j);
}
console.log("=========");
console.log(j);

语法二

const 一旦有值就不能修改(掌握)
下面这样就会报错

const a=11;
console.log(a);
const a = 12;
console.log(a);

语法三

解构表达式(掌握)

数组解构

var arr=[1,2,3]
var [a1,a2,a3]=arr;
console.log(a1);
console.log(a2);
console.log(a3);

对象解构

var obj={"name":"呵呵","age":"123"}
var {name,age}=obj;
console.log(name);
console.log(age);

语法四

箭头函数(掌握)

function say() {
    console.log("aaaaaaa")
 }
 var obj= {

     hah: (obj) => {
         console.log("哈哈哈哈哈哈"+obj)
     }
 }
say();
 obj.hah("嗝")

箭头+解构一起

var say=({name})=>console.log("我是"+name);
var obj={
    name:"你猜"
}
say(obj);

3.vue

1.什么是vue

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

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

(3)Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 --数据双向绑定
      一句话:vue就是做界面的js框架 (jquery/easyui)

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.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>

4.data数据

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

  data:{
            name:"aaaaa",
            user:{
                name:"名字",
                age:"年龄",
                hobby:["爱好1","爱好二"]
            }

5.methods方法

这里面放方法

methods:{
            say(obj){
                console.log("你在说"+obj)
            },
            run(obj){
                console.log("你又在跑"+obj)
            }

6.Vue生命周期

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

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

created:(掌握)
	表示创建完vue对象的时候,执行内容
mounted:(掌握) -- window.onload
	 表示页面所有的内容 加载完之后,执行内容
<script>
    var app=new Vue({
        el:"#app",
        data:{
            name:"aaaaa",
            user:{
                name:"名字",
                age:"年龄",
                hobby:["爱好1","爱好二"]
            }
        },methods:{
            say(obj){
                console.log("你在说"+obj)
            },
            run(obj){
                console.log("你又在跑"+obj)
            }
        },
        created(){
            console.log("我是Vue创建完就执行的")
        },
        mounted(){
          console.log("我是渲染完毕后执行的")
        }
    });
    //修改内容
    app.user.name="改了"
    app.run("不跑")
    app.say("杀");

</script>
钩子环节
 created创建对象 --> 渲染标签内容  -- >mounted挂载完 -->destory销毁
 重点:
 created  / mounted

7.数据的双向绑定

 v-model:双向绑定
<div id="app">
  <input type="text" v-model="msg" v-on:change="changeData">
    {{msg}}
</div>
<script>
    var app=new Vue({
        el:"#app",
        data: {
            msg: "test"
        },methods:{
            changeData(){
                console.log(this.msg)
            }
        }
        });
</script>

4.Vue指令

1.v-text/v-html

v-text不会解析html格式
v-html会解析

<div id="app">
    <span v-text="name"></span>
    <span v-text="user.name"></span>
    <span v-html="user.name"></span>
</div>
<script>
    var app=new Vue({
        el:"#app",
        data:{
            name:"<h1>不知道</h1>",
            user:{
                name:"<h2>你猜</h2>"
            }
        }
    })
</script>

2.v-for

循环数组

  <ul>
        <li v-for="hobby in hobbys">
            {{hobby}}
        </li>
    </ul>
 data:{
            hobbys:["唱","跳","rap","打篮球"],
      }

循环对象

 <ul>
        <li v-for="users in user">
            {{user}}
        </li>
    </ul>
data:{
  user:{
                name:"疯子",
                hobby:"大人"
            },
     }

带索引循环数组

 <ul>
        <li v-for="(hobby,index) in hobbys">
            {{hobby}}====={{index}}
        </li>
    </ul>
 data:{
            hobbys:["唱","跳","rap","打篮球"],
      }

循环对象value key index

 <ul>
        <li v-for="(users,key,index) in user">
            {{users}}====={{key}}====={{index}}
        </li>
    </ul>
data:{
  user:{
                name:"疯子",
                hobby:"大人"
            },
     }

循环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>
data:{
  students:[{"id":1,"name":"第一","age":25,"sex":"男"},
                {"id":2,"name":"第二","age":25,"sex":"女"},
                {"id":3,"name":"第三","age":25,"sex":"男"}]
     }

3.v-bind

绑定的标签里面属性的值,主要是改变属性得值

<div id="app">
    <!-- v-bind可以绑定标签里面的属性的值 比如src title-->
    <img src="image/6.jpg"><br>
    <img v-bind:src="imagSrc">
    <img :src="imagSrc">
    <input v-bind="props">
</div>
</body>
<script>
    new Vue({
        el:"#app",
        data:{
            imagSrc:"image/6.jpg",
            props:{
                type:"text",
                name:"username"
            }
        }
    })
</script>

4.v-model

控制 标签的value值 完成双向绑定和v-bind是不同的

绑定普通的字符串值

 <input v-model="inputValue">
    {{inputValue}}
 data:{
            inputValue:"这是一个文本",
      }

绑定到type=checkbox的input表单元素,这里设置值有点不同

  打代码:<input type="checkbox" v-model="checkboxValue" value="打代码">
    睡觉:<input type="checkbox" v-model="checkboxValue" value="睡觉">
    {{checkboxValue}}
data:{
 checkboxValue:["睡觉"],
 }

绑定到type=radio的input表单元素

    打代码:<input type="radio" v-model="radioValue" value="打代码">
    睡觉:<input type="radio" v-model="radioValue" value="睡觉"><br>
    {{radioValue}}
data:{
  radioValue:"打代码",
  }

绑定到文本域的值

<textarea v-model="textValue"></textarea>
    {{textValue}}
ata:{
  textValue:"文本域"
  }

下拉的值

 <select v-model="selectValue">
        <option value="打代码">打代码</option>
        <option value="睡觉">睡觉</option>
        <option value="万一游戏">万一游戏</option>
    </select>
    {{selectValue}}
ata:{
   selectValue:"打代码"
  }

5.v-show

是靠控制display这个属性实现得

 <div id="app">
        <a v-show="show">你能到我?</a>
        <a v-show="hidden">你能到我?</a>
        <a v-show="score=90">你能到我?</a>
    </div>
     <script>
         new Vue({
             el:"#app",
             data:{
                 "show":true,
                 "hidden":false,
                 "score":90,
             }
         })
     </script>

6.v-if/v-else/v-if-elseif

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

<div id="app">
    <div v-if="age<18">你可以看到这里</div>


    <div v-if="age<18">你可以看到这里</div>
    <div v-else="age>18">你不能看到那里倒是你可以看到更刺激的</div>

    <div v-if="age<18">你可以看到这里</div>
    <div v-else-if="age>18&&age<60">你不能看到那里倒是你可以看到更刺激的</div>
    <div v-else>差不多看点绿色的了</div>
</div>
<script>
    new Vue({
        el:"#app",
        data:{
            age:66,
        }
    })
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值