Vue基础学习

                  Vue基础学习

ES6的语法学习:
    变量名的定义let a = "哈哈哈"
    全局变量的定义const bb = "我说常量不可更改";
    全局变量一旦赋值 不可更改
解构表达式:可以自动解析数组 对象
    数组:解构数组
       let [a,b,c] =[10,20,30];
       console.debug(a,b,c)

    对象:let employee = {name:"狗东西",age:18}
       let {name,age} = employee
       console.debug(employee.name,employee.age)
       console.debug(name,age);

箭头表达式:这里的箭头表达式像极了JAVA8新特性中的Lambda表达式(多的不说直接上代码)

       let add = function (data){
       console.debug(data+":哈哈哈 直接上代码")

       data:参数

      表达式过后的语句:

       let add = data=>console.debug(data+":哈哈哈 直接上代码")
       //调方法 传参数
       add("xxx");

      当方法体{}里面只有一句代码的时候可以省略{}当传递的参数只有一个的时候可以省略()这里不建议省略

Promise替代Ajax方案:上代码

      <script>
      //Promise一个延时的方法
      var promise = new Promise(function (resolve,reject) {
      //设置延时时间需要回到函数
      setTimeout(function () {
      //获取0-1的随机数
      let num = Math.random();
      if(num>0.5){
      resolve("我是最小的")
      }else{
      reject("我比他大")
      }

      },1000)

      })
      promise.then(function (data) {
      console.debug(data)
      }).catch(function (data) {
      console.debug(data)
      })

      </script>

导入导出:恶意随便用导入过来的东西   From从哪个包里面导过来 前提是哪个包要导出import:导入

//批量导入
import {name,age} from "b.js";
console.debug(name,age);

export:  导出

//可以导出任何东西(基本类型,函数,数组,对象)
var name = "小张";
var age = 34;
//批量导出
export {name,age}

NPM安装:NPM就像JAVA中的maven一样  性质差不多

  1.

npm init -y初始化

  2.

npm i vue ->安装vue

  3.

npm list vue   查看某个模块

  4.

npm ls   模块列表

  5.

npm uninstall vue   卸载模块

  6.

npm update vue  更新 升级模块

Vue 渐进式前端框架MVVM &MVC

MVVM:Model,View,ViewModel【内置了一个监听器,完成双向绑定】

Vue基本的使用:

<!--引入Vue支持的文件-->
<script src="node_modules/vue/dist/vue.js"></script>
<body>
<div id="app">
<!-- {{msg}},{{add}}-->
{{employee.age}},{{porpertis}}<br/>
{{employee.name}}<br/>
{{employee}}
</div>

<script>
/* new Vue({
el:"#app",
data:{
msg:"hell,vul",
add:"哈哈哈"
}
})*/
new Vue({
el:"#app",
data:{
age:18,
department:"JAVA",
porpertis:["你那里天气好吗","JAVA精英","源码时代"],
employee:{
age:[18,20,22],
name:["学生","组长","班长"]
}
}
})

</script>

</body>

method:使用

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/vue/dist/vue.js">

</script>
</head>
<body>
<div id="app">
{{name}}
</div>

<script>
let v = new Vue({
el:"#app",
data:{
name:"王大锤"
},
//这儿方法名必须是methoods不然会报 v.add is not a function
methods:{
add(){
this.name = "王小锤"
}
}
})
alert("等一下")
v.add()

</script>

</body>
</html>

生命周期:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>生命周期</title>
<script src="node_modules/vue/dist/vue.js">

</script>
</head>
<body>
<div id="app">
{{name}}
</div>

<script>
let v =new Vue({
el:"#app",
data:{
name:"班长"
},
//钩子方法created vue内部执行完成才执行的方法
created(){
alert("等一下")
this.name = "组长"
},
//mounted 执行完created才执行的方法
mounted(){
alert("在等一下等一下")
this.name = "组员"
}

})

</script>

</body>
</html>

MVVM双向绑定:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/vue/dist/vue.js">

</script>
</head>
<body>
<div id="app">
{{name}}<br/>
//v-model双向绑定 name的值会随着input框的值变化而变化
<input type="text" v-model="name">
</div>

<script>
let v = new Vue({
el:"#app",
data:{
name:"火箭超人"
}
})

</script>

</body>
</html>

常用的指令:

    teml:显示标签属性

    text:不显示标签属性

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/vue/dist/vue.js">

</script>
</head>
<body>
<div id="app">
<!--//text文本 不会算上标签的属性-->
<div v-text="name"></div>
<!--//Html会加上标签的属性-->
<div v-html="name"></div>
</div>

<script>
new Vue({
el:"#app",
data:{
name:"<hi><b>二狗</b></hi>"
}

})

</script>



</body>
</html>

for循环遍历:可遍历数组  对象 字符串  数字   迭代器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/vue/dist/vue.js">

</script>
</head>
<body>

<div id="app">
<!--//可以循环数组-->
<div v-for="v in array">
{{v}}
</div>
<!--
可以便利对象
val 循环得到的属性
name:循环得到的字段
-->
<div v-for="(name,val) in employee">
{{name}},{{val}}
</div>
<!--便利字符串-->
<div v-for="v in string">
{{v}}
</div>
<!--便利数字 便利出来的是从1到你的数字的大小-->
<div v-for="i in integer">
{{i}}
</div>

</div>

<script>
new Vue({
el:"#app",
data:{
array:["","","","你莫说那么多"],
employee:{name:"波波",age:"18"},
string:"asdfghjkl",
integer:123
}
})

</script>




</body>
</html>

bind:用于绑定相应的属性

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/vue/dist/vue.js">


</script>
</head>
<body>
<div id="app">
<img v-bind="tupian">

</div>

<script>
new Vue({
el:"#app",
data:{
tupian:{
src:"img/1.jpg",
width:200,
height:200,

},

}

})

</script>






</body>
</html>

for和bind的一个综合使用

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/vue/dist/vue.js">

</script>
</head>
<body>
<div id="app">
<select>
<option v-for="i in countrys">
{{i.name}}
</option>
</select>
</div>
<script>
new Vue({
el:"#app",
data:{
//国家
countrys:[
{id:1,name:"China"},
{id:2,name:"Japan"},
{id:3,name:"America"},
{id:4,name:"England"}
]

}

})


</script>




</body>
</html>

使用vue之前先将支持版本改成6

猜你喜欢

转载自www.cnblogs.com/1999wang/p/11397472.html
今日推荐