搜索
博主信息
博文 40
粉丝 0
评论 1
访问量 43893
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
VUE学习之简介及常用指令
景云
原创
750人浏览过

1. VUE简介绍

HTML

  1. <!-- 创建一个vue根节点(其内所有内容都可以用vue实例进行管理) -->
  2. <div class="app">
  3. <!-- 插值(数据占位符),比如{{username}} -->
  4. <p>用户名: {{username}}</p>
  5. <p>{{username + ', php.cn讲师'}}</p>
  6. <p>10 + 30 = {{ 10 + 30}}</p>
  7. <p>{{flag ? '上午好' : '睡觉了'}}</p>
  8. </div>

VUE

首先别忘了引入库

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

  1. //声明vue的作用域
  2. const vm = new Vue({
  3. //挂载点(可简写为`el:'.app'`)
  4. el: document.querySelector('.app'),
  5. //数据注入;在data中声明的所有变量都自动成为vue实例的属性
  6. data: {
  7. username: 'Jy',
  8. }
  9. })
  10. //外部访问可以用以下方式
  11. vm.username = 'Jy2';

2.VUE常用指令

2.1 v-text: 专门由vue实例管理的自定义属性;等同于innerText/textContent

  1. //会将vue中username的数据渲染到`p`标签中
  2. <p v-text="username"></p>

2.2 v-once

  1. //效果等同`v-text`,不过只渲染一次
  2. <p v-once="username"></p>

2.3 v-html,等同于innerHTML

  1. //例如下面是vue中data的数据,向p标签中渲染时,样式也会有,下面的p标签中Jy3的字体颜色将是红色
  2. username = '<em style="color:red">Jy3</em>';
  3. <p v-html="username"></p>

2.4 v-bind:绑定styleclass属性;高频指令,可简写为:

  1. //其中style1在data中为`color:red`;执行时p标签内颜色为红色
  2. <p v-bind:style="style1">style样式</p>
  3. //简写为
  4. <p :style="style1">style样式</p>
  5. //设置类名
  6. <p :class="class1">class类</p>

2.5 v-on:绑定事件,高频指令,可简写为@

VUE

  1. const vm = new Vue({
  2. el: '.app',
  3. data: {
  4. site: 'php中文网',
  5. },
  6. methods: {
  7. show() {
  8. // this: 就是当前的vue实例对象
  9. alert(this.site)
  10. },
  11. handle(ev, a, b) {
  12. console.log(ev.type, ev.target);
  13. console.log("%d + %d = %d", a, b, (a + b));
  14. }
  15. },
  16. })

2.5.1

  1. //点击将会执行`show`方法
  2. <p> v-on:click="show">显示网站名称</p>

2.5.2 prevent:事件修饰符,阻止元素的默认行为

  1. <p><a href="https://php.cn" @click.prevent="show">显示网站名称2</a></p>

2.5.3 stop:阻止冒泡

  1. <p><a href="https://php.cn" @click.prevent.stop="show">显示网站名称2</a></p>

2.5.4 once:仅允许执行一次

  1. <p><a href="https://php.cn" @click.prevent.stop.once="show">显示网站名称2</a></p>

2.5.5 事件方法的传参(事件对象的参数名必须是 $event)

  1. <button @click.stop="handle($event, 100, 200)">click</button>

2.6 v-model:双向绑定

  1. //vue的data中`site:PHP中文网`,下面输入框内的数据和site的数据双向绑定,修改其一另外一个也跟着修改
  2. //v-mode="site",等同于 @input="site=$event.target.value"
  3. <p>双向绑定: <input type="text" v-model="site"></p>
  4. //只有在输入框失去焦点或者按下回车键才会执行
  5. <p>双向绑定: <input type="text" v-model.lazy="site"></p>

2.7 v-for:循环

HTML

  1. <div class="app">
  2. <!-- key: 可以干预diff算法 -->
  3. <!-- vue通过稳定且唯一的key值判断这个节点是否需要重新渲染, 以提升效率 -->
  4. <!-- key只能是整数或不重复的字符串 -->
  5. <!-- item为数组中的值,index为其键(key) -->
  6. <ul>
  7. <li v-for="(item,index) in items" :key="index">{{index}}--{{item}}</li>
  8. </ul>
  9. <!-- item为属性的值,prop为其键(key),index为属性的名称 -->
  10. <ul>
  11. <li v-for="(item,prop,index) in user" :key="prop">{{prop}}--{{index}}--{{item}}</li>
  12. </ul>
  13. <!-- item为数组中的对象 其键(key)最后使用对象的id ,index为对象在数组中的键 -->
  14. <ul>
  15. <li v-for=" (user, index) in users" :key="user.id">{{user.id}}--{{user.name}}--{{user.email}}</li>
  16. </ul>
  17. </div>

VUE

  1. const vm = new Vue({
  2. el: ".app",
  3. data: {
  4. // 数组
  5. items: ["山东", "江苏", "上海"],
  6. // 对象
  7. user: {
  8. name: "Jy",
  9. email: "Jy@php.cn",
  10. },
  11. // 对象数组
  12. users: [
  13. { id: 1, name: "Jy1", email: "Jy1@php.cn" },
  14. { id: 2, name: "Jy2", email: "Jy2@php.cn" },
  15. { id: 3, name: "Jy3", email: "Jy3@php.cn" },
  16. ],
  17. },
  18. });
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学