博客列表 >vue的基本指令

vue的基本指令

手机用户1607314868
手机用户1607314868原创
2021年01月18日 03:35:41576浏览

Vue是什么?

Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,
Vue 也完全能够为复杂的单页应用提供驱动。

Vue基本使用

vue在html里的使用,有一个vue根节点,比如 div 。在div里所有的内容都可以用vue实例进行管理,数据表示形式{{变量}},

  1. <div class="app">
  2. <p>用户名:{{username}}</p>
  3. </div>
  4. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  5. <script>
  6. //class=“app” 就是挂载点,vue可以操作其包裹的所有元素
  7. const vm=new Vue({
  8. //挂载点
  9. el:'.app',
  10. //数据注入
  11. data:{
  12. username:'小红'
  13. }
  14. })
  15. </script>
怎么获取p标签里的内容?

vm.$data.username;即可获得
简写为:vm.username;直接改变p标签里的内容 vm.username=”小明”;

v-text,v-once,v-html指令

  1. <p v-text="username"></p>
  2. <p v-once="username"></p>
  3. <p v-html="name"></p>
  4. //以上这些跟<p>{{username}}</p>表现形式一样

v-once跟v-text一样,区别是v-once只能被渲染一次,
v-html能解析html元素

  1. const vm=new Vue({
  2. //当前的vue的配置项
  3. //挂载点
  4. // 简写 el:document.querySelector('.app'),
  5. el:'.app',
  6. //数据注入
  7. data:{
  8. username:'小红',
  9. name:'<em style="color:red">刀郎</em>',
  10. }
  11. });

绑定指令

v-bind,v-on

  1. <p v-bind:style="style1">{{site}}</p>
  2. //v-bind是高频指令,为了方便可以写成 :冒号
  3. <p :style="style1">{{site}}</p>
  4. //v-on也是高频指令,可写成 @
  5. //.prevent a标签的默认跳转行为
  6. //.once 只执行一次
  7. <p><a href="https://php.cn" v-on:click.prevent="show">显示网站名称</a></p>
  8. <p><a href="" @click.prevent.once="show">显示网站名称</a></p>
  9. <script>
  10. const vm=new Vue({
  11. //挂载点
  12. el:'.app',
  13. //数据注入
  14. data:{
  15. site:'门户网站'
  16. //绑定属性
  17. style1:'color:red',
  18. },
  19. //绑定事件
  20. methods:{
  21. show(){
  22. //this就是当前的vue实例
  23. alert(this.site);
  24. }
  25. }
  26. })
  27. </script>

绑定事件对象

  1. <button @click="handle=($event,100,200)">click</button>
  2. //事件对象的参数名必须是 $event
  3. const vm=new Vue({
  4. //当前的vue的配置项
  5. //挂载点
  6. // 简写 el:document.querySelector('.app'),
  7. el:'.app',
  8. //绑定事件
  9. methods:{
  10. handle(ev,a,b){
  11. console.log(a,"+",b,"=",a+b);
  12. }
  13. }
  14. });

v-model双向绑定

  1. <p>模型中的数据:{{site}}</p>
  2. //$event表示事件对象
  3. <p>双向绑定:<input type="text" :value="site" @input="site=$event.target.value"></p>
  4. <script>
  5. const vm=new Vue({
  6. el:'.app',
  7. data:{
  8. site:'php中文网',
  9. },
  10. });
  11. </script>

这就是双向绑定,但这样太麻烦,有一个简便的指令v-model

  1. <p>模型中的数据:{{site}}</p>
  2. //.lazy 表示更新不频繁,除非按回车才改变
  3. <p>双向绑定:<input type="text" v-model.lazy='site'></p>
  4. //.number表示数字类型
  5. <p><input type="text" v-model.number='num'></p>
  6. <p>{{typeof num}}</p>
  7. <script>
  8. const vm=new Vue({
  9. el:'.app',
  10. data:{
  11. site:'php中文网',
  12. num:0,
  13. },
  14. methods:{
  15. }
  16. });
  17. </script>

v-for遍历

遍历数组,对象,对象数组

  1. <body>
  2. <div class="app">
  3. <!-- key可以干预diff算法 -->
  4. <!-- vue通过稳定且唯一的key值 判断这个节点是否需要更新,以提升效率 -->
  5. <!-- key只能是整数或不重复的字符串 -->
  6. <ul>
  7. <li v-for="(item,index) in items" :key="index">{{index}}--{{item}}</li>
  8. </ul>
  9. <ul>
  10. <li v-for="(item,prop,index) in user" :key="prop">{{prop}}--{{index}}--{{item}}</li>
  11. </ul>
  12. <ul>
  13. <li v-for="(user,index) in users" :key="user.id">{{user.id}}--{{user.name}}</li>
  14. </ul>
  15. </div>
  16. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  17. <script>
  18. const vm=new Vue({
  19. el:'.app',
  20. data:{
  21. items:["合肥","苏州","杭州"],
  22. //对象
  23. user:{
  24. name:"小红",
  25. email:"tp@php.cn",
  26. },
  27. //对象数组
  28. users:[
  29. {id:1,name:"小明",email:"qq@qq.com"},
  30. {id:2,name:"小彭",email:"123@qq.com"},
  31. {id:3,name:"小龙",email:"163@qq.com"},
  32. ]
  33. },
  34. });
  35. </script>
  36. </body>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议