博客列表 >Vue入门基础知识点

Vue入门基础知识点

Jason Pu?
Jason Pu?原创
2021年01月17日 00:01:371010浏览

一.vue数据插入:

Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合,今天我就开始Vue入门学习之旅

  1. //使用之前需要new一个vue的类
  2. const vm = new Vue({
  3. //设置挂载点:
  4. el:'.app',
  5. //数据注入:
  6. data:{
  7. //在data中声明的所有变量都会成为vue实例的属性:
  8. username:'VueStudent',
  9. greeting:false,//false会影响对应挂载点里面三元表达式的值
  10. }
  11. })

在html给vue创建一个根节点:

  1. <div class="app">
  2. <!-- {{里面的就是插值,可以接受表达式}} -->
  3. <p>用户名:{{username}}</p>
  4. <p>10+10={{10+10}}</p>
  5. <p>greeting?‘上午好’:‘下午好’</p>
  6. </div>

浏览器中的运行效果


二.v-html和v-once

v-text:相当于原生js中的innerText或者textContent
v-once:只渲染一次

例如我们在外面给在data中已经设置好的username重新赋值

  1. vm.username="<em style='color:red; font-size:2em;'>SecondStudent</em>"

再写两个一个没有设置v-html和有设置的p标签:

  1. <div class="app">
  2. <p>{{username}}</p>
  3. <p v-html="username"></p>
  4. </div>

运行后产生了不同的结果:


三.v-bind绑定style和class属性

1.绑定style:

  1. <div class="app">
  2. <!-- v-bind绑定了datastyle1的值: -->
  3. <p v-bind:style="style1">style:{{style}}</p>
  4. <!-- v-bind可以简写成一个冒号“:” -->
  5. <p :style="`color:red`">style:{{site}}</p>
  6. </div>
  7. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  8. <script>
  9. const vm = new Vue({
  10. el:'.app',
  11. data:{
  12. site:'php中文网',
  13. style1:"color:red",
  14. class1:"active bigger",
  15. }
  16. })
  17. </script>

由于第一个p标签绑定的style1的值和第二个p标签绑定的值一样,所以运行后得到相同的结果


2.绑定类

  1. <style>
  2. .active{
  3. color:red;
  4. }
  5. .bigger{
  6. font-size: 2rem;
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <div class="app">
  12. <!-- 绑定类class属性 -->
  13. <!-- 给里面的类绑定了style里面提前设置好的的.active和.bigger样式 -->
  14. <p :class="`active bigger`" >class1:{{site}}</p>
  15. <!-- 也可以绑定给data里面的class1,因为已经提前赋值好了 -->
  16. <p :class="class1">class2:{{site}}</p>
  17. <!-- 用对象设置开和关 -->
  18. <p :class="{active:true, bigger:false}">class3:{{site}}</p>
  19. </div>
  20. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  21. <script>
  22. const vm = new Vue({
  23. el:'.app',
  24. data:{
  25. site:'php中文网',
  26. style1:"color:red",
  27. class1:"active bigger",
  28. }
  29. })

以下是运行后的结果,可见对象里面的布尔值起到了作用


四.使用v-on绑定事件
我们可以使用v-on绑定绑定事件,格式是:```javascript
v-on:”事件名称”=”函数名称”

  1. **在js中事件常用的一些方法也可以添加到v-on后面,比如阻止事件冒泡,阻止元素默认行为,也可以用$event给事件对象传参,v-on可以简写成@**
  2. **当然,绑定事件的前提是,你先得在methods里面写好函数**
  3. ```javascript
  4. <div class="app">
  5. <!-- 这里用@简写了v-on,并阻止了默认事件和事件冒泡,并只能执行一次 -->
  6. <p><a href="https://php.cn" @click.prevent.stop.once="show">点击显示网站名称</a></p>
  7. <!-- 这里我们传入了事件对象的参数 -->
  8. <button @click.stop="handle($event,100,200)">click</button>
  9. </div>
  10. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  11. <script>
  12. const vm = new Vue({
  13. el:'.app',
  14. data:{
  15. site:"php中文网",
  16. },
  17. methods:{
  18. show(){
  19. //这里的this指当前vue的实例对象
  20. alert(this.site)
  21. },
  22. handle(ev,a,b){
  23. //type是指事件类型
  24. console.log(ev.type,ev.target);
  25. console.log("%d+%d=%d",a,b,(a+b));
  26. },
  27. }
  28. })
  29. </script>

绑定写在methods里面的函数运行后,函数得到了执行:


五.使用v-model进行双向绑定

双向绑定指:修改页面当中的数据,模型中的数据也能跟着修改,例如以下代码:

  1. <div class="app">
  2. <p>模型中的数据:{{content}}</p>
  3. <p>双向绑定: <input type="text" value="content" @keyup="content=$event.target.value"></p>
  4. </div>
  5. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  6. <script>
  7. const vm = new Vue({
  8. el:'.app',
  9. data:{
  10. content:"php中文网",
  11. }
  12. })
  13. </script>

因为这个方法经常使用,所以vue提供了语法糖:v-model,上面的代码可以直接简写:

  1. <p>双向绑定:<input type="text" v-model.lazy.number="content"> </p>

运行的结果显示我们确实成功的改变了模型中的值:


六.用v-for进行遍历

遇到集合数据的时候,可以用遍历进行显示,例如我们在data中分别创建一个数组,对象,数组对象,在页面中进行显示:

  1. const vm = new Vue({
  2. el:'.app',
  3. data:{
  4. //数组:
  5. items:["天","地","人"],
  6. //对象:
  7. user:{
  8. name:"Jasper",
  9. psw:"123",
  10. },
  11. //对象数组:
  12. users:[
  13. {id:1,name:"Jasper",psw:"123"},
  14. {id:2,name:"Peter", psw:"321"},
  15. {id:3,name:"Mary",psw:"666"},
  16. ],
  17. },
  18. })

用v-for在li标签中进行遍历并显示:

  1. <ul>
  2. <!-- 此处的item代表值,index是索引具有唯一性 -->
  3. <li v-for="(item,index) in items" :key="index">{{index}}--{{item}}</li>
  4. </ul>
  5. <ul>
  6. <!-- item:是对象的值,prop是键,index是索引,索引和键都具有唯一性 -->
  7. <li v-for="(item,prop,index) in user" :key="prop">{{prop}}--{{index}}--{{item}}</li>
  8. </ul>
  9. <ul>
  10. <li v-for="(user,index) in users" :key="user.id">{{user.id}}--{{user.name}}--{{user.psw}}</li>
  11. </ul>

运行后成功的遍历并显示了,代替了重复的工作

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议