Vue导读

  1. 1.Vue框架
      vue是可以独立完成前后端分离式web项目的js框架
  2. 三大主流框架之一:AngularReactVue
  3. vue:结合其他框架优点、轻量级、中文API、数据驱动、双向绑定、MVVM设计模式、组件化开发、单页面应用
  4. Vue环境:本地导入和cdn导入
  5.  
  6. 2.Vue是渐进式js框架
  7. 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式完成整个web前端项目。
    3.怎么使用vue
      去官网下载然后导入
      
  1. <div id="app">
  2. {{ }}
  3. </div>
  4. <script src="js/vue.min.js"></script>
  5. <script>
  6. new Vue({
  7. el: '#app'
  8. })
  9. </script>

Vue实例

1、实例成员-挂载点  (el:实例)    vue如何与html页面结构建立关联:挂载点

  1. <div id="wrap">
  2. {{ }}
  3. <hr>
  4. <div class="main">
  5. {{ }}
  6. </div>
  7. <hr>
  8. <div class="main">
  9. {{ }}
  10. </div>
  11. </div>
  12. <script src="js/vue.js"></script>
  13. <script>
  14. new Vue({
  15. el: '#wrap' // el表示挂载点
  16. })
  17. </script>

注意:(******)

  • html和body不能作为挂载点
  • 一个vue对象挂载点只能索引一个匹配结果,就算有几个类名取一样的,也是只能匹配第一个,所以挂载点一般用id标识。
  • 一个页面中可以出现多个实例对应多个挂载点
  • 实例只操作挂载点内部内容

js对象(字典)补充

  1. let b = 20;
  2. let dic = {
  3. a: 10, // 字典本身就是对象,key都是字符串形式可以省略引号
  4. b // 值为变量时,且与key同名,可以简写
  5. };
  6. console.log(dic)

2、实例成员-数据 (data:数据)

  1. 1.在实例成员datavue环境提供数据,数据采用字典{}形式
  2. 2.显示数据的时候在插值表达式{{}}中,直接书写数据的key来访问数据
  3. 3.如果需要在外部获取数据可以通过接受实例的变量app(标签id值或者class值),访问实例成员(实例成员用$开头),间接访问到数据 app.$data.info
  4. 4.在外部获取数据也可以通过实例变量app(标签id值或者class值)直接访问数据 app.info
  5. 5.vue实例内部的方法methods中,使用变量,this.info(this其实就相当于app)
  1. <div id="app">
  2. <!-- {{}}是插值表达式,中间出现的info是vue变量 -->
  3. <p>{{ info }}</p>
  4. <p>{{ info }}</p>
  5. <p>{{ num }}</p>
  6. <p>{{ arr }}</p>
  7. <p>{{ dic }}</p>
  8. </div>
  9. <script src="js/vue.js"></script>
  10. <script>
  11. let app = new Vue({ #取一个变量名app,方便外面取值
  12. el: '#app',
  13. data: {
  14. info: 'message',
  15. num: 100,
  16. result: true,
  17. arr: [1, 2, 3, 4, 5],
  18. dic: {
  19. name: 'Owen',
  20. age: 17.5
  21. }
  22. }
  23. })
  24. </script>
  25. <script>
  26. console.log(app);
  27. console.log(app.$data.info); #外部间接访问数据
  28. console.log(app.info); #外部直接访问数据
  29. </script>

3、实例成员-过滤器  (filters:过滤函数)

  1. 1.过滤器本身就是数据处理函数,可以将插值表达式中的数据作为参数进行处理,得到的函数返回值就是处理后的结果
  2. 2.过滤器的使用语法{{ ...变量 | 过滤器(...变量) }} #()里面的变量可以全部写在前面的变量中
  3. 3.过滤器在实例中用filters成员提供
  1. <div id="app">
  2. <!--插值表达式也可以直接做简单运算-->
  3. <p>{{num*2}}</p> #200
  4. <p>{{num | f1 }}</p> #101
  5. <p>{{10,20,30,40 | f2 }}</p> #100
  6. <p>{{10,20 | f2(30,40) }}</p> #100
  7. <p>{{ 120 | f2 }}</p> #NaN <!--120 undefined undefined undefined-->
  8.  
  9. </div>
  10.  
  11. <script src="js/vue.min.js"></script>
  12. <script>
  13. new Vue({
  14. el:'#app',
  15. data:{
  16. num:100
  17. },
  18. filters:{
  19. f1(num){
  20. return num+1
  21. },
  22. f2:function (a,b,c,d) {
  23. console.log(a,b,c,d);
  24. return a+b+c+d
  25. }
  26. }
  27. })
  28. </script>

注意:(******)

  • 在插值表达式中可以用多种方式传值{{a,b,c,d | f2 }} ,也可以{{a,b,c | f2(d)}},等等,它们的结果都是一样的
  • 定义函数可以直接写  函数名(){},可以不写 :function

Vue指令

1.文本指令  v-text/v-html

  1. 1.插值表达式同v-text 指令,渲染普通文本
  2. 2.v-html指令可以渲染有html语法的文本,能够解析html语法
  3. 3.文本指令中可以渲染变量也可以渲染常量
  1. <div id="app">
  2. <p>{{ info }}</p>
  3.  
  4. <!--1)v-指令名="变量",变量是需要data提供数据值的 -->
  5. <p v-text="info"></p>
  6. <!--2)v-指令名="常量",常量采用常量基本的语法,数字与布尔类型等可以直接书写的直接书写,字符串等需要特殊符号的需要添加符号-->
  7. <p v-text=""></p>
  8. <p v-text="true"></p>
  9. <p v-text="'abc' + info"></p>
  10. <p v-text="[1, 2, 3]"></p>
  11.  
  12. <!--3)v-html可以解析html语法-->
  13. <p v-html="`<b style='color:red'>好的</b>`"></p>
  14. <p v-text="'<b>好的</b>'"></p>
  15. </div>
  16. <script src="js/vue.js"></script>
  17. <script>
  18. new Vue({
  19. el: '#app',
  20. data: {
  21. info: 'data提供的数据',
  22. }
  23. })
  24. </script>

反引号补充

  1. 1.js多行字符串 反引号 ``
  2. 2.反引号字符串中可以直接填充变量,语法为`${变量名}`
  3.  
  4. let s1=`第一行
  5. 第二行
  6. 结束行;
  7. `;
  8. console.log(s1);
  9. -----------------------
  10. let name='jason';
  11. let age=18;
  12. let s2=`
  13. name:${name}
  14. age:${age}
  15. `;
  16. console.log(s2)

2.事件指令 v-on  (v-on重点需要记住是可以简写成@格式,并需要记住语法格式)

  1. 1.语法: v-on:事件名='函数名(参数们)'
  2. 2.简写: @事件名='函数名(参数们)'
  3. 3.methods实例成员提供事件函数的实现
  4. 4.事件传参:函数名 | 函数名() | 函数名(自定义参数) | 函数名($event,自定义参数)
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. body {
  8. /*页面文本不允许选择*/
  9. user-select: none;
  10. }
  11. .low-num {
  12. cursor: pointer;
  13. }
  14. .low-num:hover {
  15. color: red;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div id="app">
  21. <!-- 事件指令:v-on:事件名="事件函数名" -->
  22. <p class="low-num" v-on:click="lowNum">
  23. <span>点击减一:</span>
  24. <span>{{ num }}</span>
  25. </p>
  26.  
  27. <p v-on:dblclick="dblAction">双击</p>
  28.  
  29. <!-- v-on:事件名="事件函数" 可以简写为 @事件名="事件函数" -->
  30. <p @mouseover="overAction()">悬浮</p>
  31. <p @mouseover="overAction(10)">悬浮1</p>
  32. <p @mouseover="overAction(10, 20)">悬浮2</p>
  33. <p @mouseover="overAction(10, 20, $event)">悬浮3</p>
  34.  
  35. </div>
  36. </body>
  37. <script src="js/vue.js"></script>
  38. <script>
  39. let app = new Vue({
  40. el: '#app',
  41. data: {
  42. num: 99
  43. },
  44. methods: {
  45. lowNum: function () {
  46. // 在vue实例内部的方法中,使用变量
  47. // alert(this.num)
  48. this.num -= 1;
  49. },
  50. dblAction (ev) {
  51. // alert('双击事件');
  52. console.log(ev)
  53. },
  54. overAction(a, b, c) {
  55. console.log(a, b, c)
  56. }
  57. }
  58. })
  59. </script>
  60.  
  61. </html>
  1. v-on:click='事件函数名' 鼠标点击事件
  2. v-on:dbclick='事件函数名' 双击事件
  3. v-mouseover='事件名函数' 鼠标悬浮事件

注意:(******)

  1. 事件的两种写法:
  2. 1. v-on:事件名='事件函数名'
  3. 2.@事件名='事件函数名'
  4.  
  5. 事件传参的四种方法:
  6. 1.@事件 = '事件函数' 默认传入事件对象 $event
  7. 2.@事件 = '事件函数()' 不传递任何参数
  8. 3.@事件 = '事件函数(参数1,参数2,...)' 只传递自定义参数
  9. 4.@事件 = '事件函数($event,参数1,参数2...)' 自定义传参是传递事件对象

3.属性指令  v-bind   (需要注意的是style、class属性设置)

  1. 1.语法: v-bind:属性名 = '变量'
  2. 2.简写 :属性名 = '变量'
  3. 3.单值属性绑定: title='变量' | :id='变量' | :自定义属性='变量'
  4. 4.style属性绑定: style='字典变量' | style='{css属性1:变量1,...,css属性n:变量n}'
  5. 5.class属性绑定: :class='变量' | :class='[变量1,...,变量n]' | :class='{类名:布尔变量}'
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>属性指令</title>
  6. <style>
  7. [index] {
  8. color: orange;
  9. }
  10.  
  11. .ccc {
  12. background-color: yellowgreen;
  13. color: greenyellow;
  14. border-radius: 50%;
  15. }
  16. .ccc1 {
  17. background-color: yellowgreen;
  18. }
  19. .ccc2 {
  20. color: greenyellow;
  21. }
  22. .ccc3 {
  23. border-radius: 50%;
  24. }
  25.  
  26. .ttt {
  27. background-color: gold;
  28. color: orange;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div id="app">
  34. <!--1) 语法:v-bind:属性名="变量" -->
  35. <p id="p1" class="p1" style="" title="" index="">属性指令1</p>
  36. <p id="p2" v-bind:class="p1" style="" title="" index="">属性指令2</p>
  37.  
  38. <p v-bind:index="p1">自定义属性也可以被vue绑定1</p>
  39. <!--2) v-bind:属性名="变量" 简写 :属性名="变量" -->
  40. <p :index="p1">自定义属性也可以被vue绑定2</p>
  41. <p :title="'文本提示'">悬浮文本提示</p>
  42.  
  43. <!--3) style样式属性绑定 -->
  44. <p :style="myStyle">样式绑定1</p>
  45. <p :style="{backgroundColor: c1, color: c2, 'border-radius': '50%'}">样式绑定2</p>
  46.  
  47. <!--4) class类属性绑定 -->
  48. <p :class="myc1">样式绑定3</p>
  49. <p :class="[myc2,myc3,myc4,'bbb']">样式绑定4</p>
  50. <!--xxx是类名,是否起作用有布尔类型变量yyy值决定 -->
  51. <p :class="{xxx:yyy}">样式绑定5</p>
  52.  
  53. <!--案例:点击切换类名是否起作用-->
  54. <p @click="clickAction" :class="{ttt:yyy}">点击切换类</p>
  55. </div>
  56. </body>
  57. <script src="js/vue.js"></script>
  58. <script>
  59. new Vue({
  60. el: '#app',
  61. data: {
  62. p1: 'q1',
  63. myStyle: { #style样式属性绑定
  64. backgroundColor: 'pink',
  65. color: 'deeppink',
  66. 'border-radius': '50%'
  67. },
  68. c1: 'cyan',
  69. c2: 'tan',
  70. myc1: 'ccc', #class类属性绑定
  71. myc2: 'ccc1',
  72. myc3: 'ccc2',
  73. myc4: 'ccc3',
  74. yyy: true, // false
  75. },
  76. methods: {
  77. clickAction() {
  78. this.yyy = !this.yyy;
  79. }
  80. }
  81. })
  82. </script>
  83. </html>

注意:style样式属性绑定、class类属性绑定

属性指令的用处:原来是一个属性,有固定的值,但是我们想这个属性值是可以动态变化的,所以就把这个属性变成变量,在属性名前面加:就行

动态修改文本样式案例

  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. .box {
  8. width: 200px;
  9. height: 200px;
  10. background-color: orange;
  11. }
  12. .center {
  13. text-align: center;
  14. line-height: 200px;
  15. }
  16. .rcenter {
  17. text-align: right;
  18. line-height: 200px;
  19. }
  20. .right {
  21. text-align: right;
  22. }
  23. .top {
  24. line-height: 21px;
  25. }
  26. .bottom {
  27. line-height: calc(400px - 21px);
  28. }
  29. </style>
  30. </head>
  31. <body>
  32. <div id="app">
  33. <div class="box" :class="[c1, {right:r, top:t, bottom:b}]" @mouseover="a1" @mousedown="a2" @mouseup="a3" @mouseout="a4">{{ msg }}</div>
  34. </div>
  35. </body>
  36. <script src="js/vue.js"></script>
  37. <script>
  38. new Vue({
  39. el: '#app',
  40. methods: {
  41. a1(){
  42. this.msg = '被悬浮';
  43. // 正中
  44. this.c1 = 'center';
  45. this.r = 0;
  46. this.t = 0;
  47. this.b = 0;
  48. },
  49. a2(){
  50. this.msg = '被按下';
  51. // 右上
  52. this.r = 1;
  53. this.t = 1;
  54. this.b = 0;
  55. },
  56. a3(){
  57. this.msg = '被抬起';
  58. // 右中
  59. this.c1 = 'rcenter';
  60. this.r = 0;
  61. this.t = 0;
  62. this.b = 0;
  63. },
  64. a4(){
  65. this.msg = '被移开';
  66. // 右下
  67. this.r = 1;
  68. this.t = 0;
  69. this.b = 1;
  70. },
  71. },
  72. data: {
  73. msg: '',
  74. c1: '',
  75. r:0,
  76. t:0,
  77. b:0,
  78. }
  79. })
  80. </script>
  81. </html>

4、表单指令   v-model  设置属性值(******)

  1. 1.语法: v-model='控制value值的变量'
  2. 2. :value='变量' 直接绑定数据不会时时更新(修改表单标签值,值不会时时映射给绑定的变量)
  3. 3. v-model='变量' 绑定数据会时时更新(修改表单标签值,值会时时映射给绑定的变量)
  4. 4.单独复选框作为确认框时,v-model绑定的变量为布尔类型变量
  5. 5.多复选框,v-model绑定的变量值是一个列表(数组),存放复选框选项值(谁被选中就存放了谁)
  6. 6.单选框,v-model绑定的变量值是某一个选项的值(值是哪个选项的值,那个选项就被选中)
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. .p1 {
  8. width: 500px;
  9. height: 21px;
  10. background-color: orange;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div id="app">
  16. <form action="">
  17. <!--1) 对表单标签value进行绑定操作变量,不能时时检测绑定的变量-->
  18. <input class="inp1" type="text" :value="info">
  19. <input class="inp2" type="text" :value="info">
  20. <p class="p1">{{ info }}</p>
  21. <hr>
  22. <!--2) 表单标签的值由 v-model="变量" 来绑定控制,操作的还是value,但是拥有时时变量值的检测 -->
  23. <input class="inp1" type="text" v-model="info">
  24. <input class="inp2" type="text" v-model="info">
  25. <p class="p1">{{ info }}</p>
  26. <hr>
  27. <!-- 2) v-model操作单独复选框 - 确认框 -->
  28. 是否同意:<input type="checkbox" name="agree" v-model="isAgree">
  29. <!--是否同意:<input type="checkbox" name="agree" true-value="yes" false-value="no" v-model="isAgree">-->
  30. <p>{{ isAgree }}</p>
  31.  
  32. <!-- 3) 单选框-->
  33. 性取向:
  34. <input type="radio" name="sex" value="male" v-model="mysex">
  35. <input type="radio" name="sex" value="female" v-model="mysex">
  36. 哇塞 <input type="radio" name="sex" value="others" v-model="mysex">
  37. <p>{{ mysex }}</p>
  38.  
  39. <!-- 4) 复选框-->
  40. 兴趣爱好:
  41. <input type="checkbox" name="hobbies" value="male" v-model="myhobbies">
  42. <input type="checkbox" name="hobbies" value="female" v-model="myhobbies">
  43. 哇塞 <input type="checkbox" name="hobbies" value="others" v-model="myhobbies">
  44. <p>{{ myhobbies }}</p>
  45.  
  46. <hr>
  47. <input type="submit">
  48. </form>
  49. </div>
  50. </body>
  51. <script src="js/vue.js"></script>
  52. <script>
  53. new Vue({
  54. el: '#app',
  55. data: {
  56. info: '',
  57. isAgree: 0,
  58. // isAgree: 'no',
  59. mysex: 'others',
  60. myhobbies: ['male', 'female']
  61. }
  62. })
  63. </script>
  64. </html>

Vue框架(一)——Vue导读、Vue实例(挂载点el、数据data、过滤器filters)、Vue指令(文本指令v-text、事件指令v-on、属性指令v-bind、表单指令v-model)的更多相关文章

  1. Vue框架(二)——Vue指令(v-once指令、v-cloak指令、条件指令、v-pre指令、循环指令)、todolist案例、Vue实例(计算、监听)、组件、组件数据交互

    Vue指令 1.v-once指令  单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) <!DOCTYPE html> <html lang=" ...

  2. vue框架(一)

    一.介绍 1.Vue是什么? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关 ...

  3. Vue框架初识01

    摘要 vue简介 vue使用 一.Vue简介: 简介: Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 A ...

  4. VUE框架概括+模块语法使用(上)

    vue是什么 官网(https://cn.vuejs.org/) Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计: Vue 的核心库只关注视图 ...

  5. Vue框架的介绍及使用

    Vue框架 定义:渐进式 JavaScript 框架 渐进式:可以控制一个页面的一个标签,可以控制一系列标签,也可以控制整个页面,甚至可以控制整个前台项目. 通过对框架的了解与运用程度,来决定其在整个 ...

  6. 前端--vue框架

    1.下载 查看已安装好的版本 -------渐进式的JS框架--------- vue是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架 ...

  7. Vue框架H5商城类项目商品详情点击返回弹出推荐商品弹窗的实现方案

    需求场景: 非推荐商品详情页返回的时候弹出弹窗推荐商品,点击弹窗按钮可以直接访问推荐商品: 只有直接进入商品详情页返回才会弹出推荐商品弹窗: 每个用户访问只能弹一次(除非清除缓存). 需求分析: 1. ...

  8. Vue框架基础02

    摘要 条件指令 循环指令 评论案例 实例成员之computed 实例成员之watch 分隔符 组件:局部组件和全局组件 局部组件与全局组件之间信息传输 一.条件指令扩展 <!DOCTYPE ht ...

  9. Vue框架基础概要

    Vue.js是什么? Vue.js(读音 /vjuː/,类似于 view 的读音)是一套构建用户界面(user interface)的渐进式框架.与其他重量级框架不同的是,Vue 从根本上采用最小成本 ...

  10. vue 框架,入门必看

    vue 的 入门 el 的挂载点: el 是用来设置vue实例挂载,(管理)的元素 vue会管理el选项命中的元素以及内部的后代元素 可以使用其他的选择器,但是不建议使用ID选择器 可以使用其他的双标 ...

随机推荐

  1. 面向开发人员的Windows错误报告(WER)

    Windows错误报告是更新的Windows XP上Dr.Watson的替代品.它监视故障并收集可以发送到要分析的服务器(如果用户允许)的有用信息.这项功能帮助微软修复了很多错误——由于收到的报告,微 ...

  2. 超实用文件监控多线程FTP上传工具

    这是自己很久以前写的一个多线程FTP 上传工具,支持多账户,自定义线程数,自定义文件监控目录,可用做文件发布使用,非常实用,今天有小伙伴问起,现分享出来: using System; using Sy ...

  3. GSEA 基因集富集分析

    http://software.broadinstitute.org/gsea/index.jsp GSEA(Gene Set Enrichment Analysis)是一种生物信息学的计算方法,用于 ...

  4. error: 'for' loop initial declaration used outside C99 mode的解决方法

    for(int i = 0;i<10;i++)这样写循环时可能会出现如题编译错误,解决方法有两种,如下:1 将文件后缀名由".c"改为".cpp"2 in ...

  5. [原创]敏捷管理实践Scrum思维导图

    [原创]敏捷管理实践Scrum思维导图

  6. 方法型混淆js代码

    const fs = require('fs'); const acorn = require('acorn'); const walk = require("acorn-walk" ...

  7. 一句命令激活windows/office (https://03k.org/kms.html)

    https://03k.org/kms.html 本站上线KMS服务~一句命令激活windows/office kissshot2015年11月1日 装机必备, 软件下载 240 条评论 服务器地址: ...

  8. javascript常用方法 - String

    // 1.长字符串 // 1.1 let longString1 = "This is a very long string which needs " + "to wr ...

  9. 爬虫数据提取之JSON与JsonPATH

    数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适 ...

  10. centos7.5系统elasticsearch使用滚动和全新安装升级到最新的elasticsearch7.4.2版本

    背景: 生产环境大量使用 elasticsearch 集群,不同的业务使用不同版本的elasticsearch es经常曝出一些大的漏洞,需要进行版本升级,并且使用x-pack的基本验证功能,避免用户 ...