Vue初识

清疚 2021-11-29 10:42 403阅读 0赞

渐进式JavaScript框架

通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架的形式完成整个web前端项目

什么是Vue

vue可以独立完成前后端分离式web项目的JavaScript框架

为什么要学习Vue

三大主流框架之一:Angular React Vue
先进的前端设计模式:MVVM
可以完全脱离服务器端,以前端代码复用的方式渲染整个页面:组件化开发

Vue优点

1.单页面:高效
2.虚拟DOM:页面缓存
3.数据的双向绑定:数据是具有监听机制
4.数据驱动:从数据出发,不是从DOM出发

Vue使用

1.下载vue.js:https://vuejs.org/js/vue.js

1635151-20190626181900115-1422127504.png

2.在要使用vue的html页面通过script标签引入

  1. <script src="js/vue.js"></script>

3.在html中书写挂载点的页面结构,用id表示

  1. <div id="app">
  2. <h1>{
  3. {h1msg}}</h1>
  4. <h2>{
  5. {h2msg}}</h2>
  6. </div>
  7. </body>
  8. <script src="js/vue.js"></script>
  9. <script>
  10. new Vue({
  11. el: '#app', //挂载点

4.在自定义的script标签实例化Vue对象,传入一个大字典

  1. data: { //为挂载点页面结构提供数据
  2. h1msg: 'h1内容',
  3. h2msg: 'h2内容'
  4. }
  5. })

5.在字典中通过 el与挂载点页面结构绑定,data为其通过数据
1635151-20190626182251824-1038264894.png

vue完成简单的事件

{ { msg }}这种被两个大括号包住的叫插值表达式 也叫vue变

  1. <body>
  2. <div id="app">
  3. <h1 v-on:click="clickAction">h1的内容是{
  4. { msg }}</h1>
  5. </div>
  6. </body>
  7. <script src="js/vue.js"></script>
  8. <script>
  9. new Vue({
  10. el: '#app',
  11. data: {
  12. msg:'内容 '
  13. },
  14. methods:{
  15. //为挂载点提供事件
  16. clickAction:function () {
  17. alert(123)
  18. }
  19. }
  20. })
  21. </script>

Vue操作页面样式

  1. <body>
  2. <div id="app">
  3. <!--只要数据值一样的都是一起被改变-->
  4. <p v-on:click="btnClick" v-bind:style="v_style">点击文字颜色变为绿色</p>
  5. <div v-on:click="btnredclick" v-bind:style="r_style">点击文字颜色变为红色</div>
  6. </div>
  7. </body>
  8. <script src="js/vue.js"></script>
  9. <script>
  10. new Vue({
  11. el: '#app',
  12. data: {
  13. v_style:{
  14. color:'black'
  15. },
  16. r_style:{
  17. color: 'black'
  18. }
  19. },
  20. methods:{
  21. btnClick:function () {
  22. this.v_style.color = 'green';
  23. },
  24. btnredclick:function () {
  25. this.r_style.color = 'red'
  26. }
  27. }
  28. })
  29. </script>

1635151-20190626183908688-313856096.png

  1. 只要变量一样的都是一起被改变

1.vue通过 v-* 指令来控制标签
2.vue通过 变量 来驱动页面

文本指令

将data里面的数据能够直接渲染给html页面的指令就是文本指令

  1. <body>
  2. <div id="app">
  3. <p>{
  4. { msg1 }}</p>
  5. <!--插值表达式就是v-text的简写-->
  6. <p v-text="msg2"></p>
  7. <!--v-html会解析html代码-->
  8. <p v-html="msg3"></p>
  9. <!--v-once是限制这个变量只能被操作一次,一旦被赋初始值了就不改变,还需要用插值表达式渲染出来-->
  10. <p v-once="msg3" v-on:mouseover="action">{
  11. {msg3}}</p>
  12. </div>
  13. </body>
  14. <script src="js/vue.js"></script>
  15. <script>
  16. new Vue({
  17. el: '#app',
  18. data: {
  19. msg1: '**msg1**',
  20. msg2: '<b>**msg2**</b>',
  21. msg3: '<b>**msg3**</b>',
  22. },
  23. methods: {
  24. action: function () {
  25. //不能直接this.data.msg4直接拿到,需要声明一个变量
  26. this.msg3 = '<i>**msg3**</i>';
  27. }
  28. }
  29. })
  30. </script>

斗篷指令

页面如果vue没加载成功,现在页面上吧双大括号显示出来,当vue记载成功再渲染,比如cdn加载过来,先把你要加载的东西隐藏掉

事件指令

  1. <body>
  2. <div id="app">
  3. <!--v:on:事件名="函数名" 可以简写为@事件名="函数名"-->
  4. <p v-on:click="action1">{
  5. { msgs[0] }}</p>
  6. <p @click="action2">{
  7. { msgs[1]}}</p>
  8. <ul>
  9. <!--要区别点击的是哪一个,需要加括号传参-->
  10. <li @click="liAction(1)">列表项1</li>
  11. <li @click="liAction(2)">列表项2</li>
  12. <li @click="liAction(3)">列表项3</li>
  13. </ul>
  14. <!--鼠标事件的对象 直接写函数名,默认把鼠标事件对象传入,可以获取到x,y轴-->
  15. <div @click="func1">func1</div>
  16. <!--又要传参又要事件对象就多传一个参数,一旦加了括号就要手动传参,$event代表事件对象-->
  17. <div @click="func2($event,'abc')">func2</div>
  18. </div>
  19. </body>
  20. <script src="js/vue.js"></script>
  21. <script>
  22. new Vue({
  23. el: '#app',
  24. data: {
  25. msgs:['11111','22']
  26. },
  27. methods:{
  28. action1:function () {
  29. alert(this.msgs[0])
  30. },
  31. action2:function () {
  32. alert(this.msgs[1])
  33. },
  34. liAction:function (num,msg) {
  35. console.log(num,msg)
  36. },
  37. func1:function (ev) {
  38. console.log(ev)
  39. },
  40. func2:function (ev,msg) {
  41. console.log(ev);
  42. console.log(msg)
  43. }
  44. }
  45. })
  46. </script>

属性指令

什么是属性:id,class,style等都是属性,用vue绑定属性,将属性内容交给vue处理
语法:v-bind:属性名=”变量” v-bind:可以简写为:

一个类名可以控制一群样式,双类名中,变量拿引号括起来就不是变量了

  1. <body>
  2. <div id="app">
  3. <p class="" style="" v-bind:owne="oo" :jason="jj"></p>
  4. <!--class属性-->
  5. <p :class="c1" @click="action1"></p>
  6. <!--双类名,变量拿引号括起来就不是变量了-->
  7. <p :class="[c1,'br']"></p>
  8. <!--style属性-->
  9. <!--一个变量:该变量值为{},{}内部完成一个个属性的设置 推荐这种-->
  10. <p class="gDiv" :style="s1">12345</p>
  11. <!--一个{},{}内一个个属性由一个个变量单独控制-->
  12. <p class="gDiv" :style="{fontSize:fs,color:c}">123456</p>
  13. </div>
  14. </body>
  15. <script src="js/vue.js"></script>
  16. <script>
  17. new Vue({
  18. el: '#app',
  19. data: {
  20. oo:'Owen',
  21. jj:'Jason',
  22. c1:'rDiv',
  23. c2:'br',
  24. s1:{
  25. // 'font_size':'50px'
  26. fontSize:'30px',
  27. color:'pink'
  28. },
  29. fs:'50px',
  30. c:'red'
  31. },
  32. methods:{
  33. action1:function () {
  34. if (this.c1 == 'rDiv'){
  35. this.c1 = 'gDiv'
  36. }else{
  37. this.c1 = 'rDiv'
  38. }
  39. }
  40. }
  41. })
  42. </script>

表单指令

定义两个input标签同时输入值修改值删除值,实时改变

表单指令:v-model=”变量” 双向绑定

  1. <body>
  2. <div id="app">
  3. <!--表单指令 v-model="变量"-->
  4. <form action="">
  5. <p>
  6. <input type="text" v-model="val" name="user">
  7. </p>
  8. <p>
  9. <input type="text" v-model="val">
  10. </p>
  11. <!--单选框 v-model绑定的变量是单选框中某一个input的value-->
  12. <p>
  13. 男:<input v-model="r_val" value="male" type="radio" name="sex">
  14. 女:<input v-model="r_val" value="female" type="radio" name="sex">
  15. </p>
  16. <!--复选框 v-model绑定的变量是一个列表中存放0到任意一个复选框的value -->
  17. <p>
  18. 男:<input v-model="c_val" value="m" type="checkbox" name="f">
  19. 女:<input v-model="c_val" value="f" type="checkbox" name="f">
  20. </p>
  21. <button type="submit">提交</button>
  22. </form>
  23. </div>
  24. </body>
  25. <script src="js/vue.js"></script>
  26. <script>
  27. new Vue({
  28. el: '#app',
  29. data: {
  30. val:'',
  31. r_val: 'male',
  32. c_val:['f']
  33. }
  34. })
  35. </script>

条件指令

条件指令:v-show 或 v-if
v-show 消失是以display:none 显渲染,占页面结构

v-if 是不被渲染,在内存中,所以建议建立缓存用key属性

  1. <body>
  2. <div id="app">
  3. <!--条件指令 v-show 或者 v_if -->
  4. <div class="div" v-show="s1"></div>
  5. <div class="div" v-show="s1"></div>
  6. <div class="div" v-if="s2" key="div1"></div>
  7. <div class="div" v-if="s2" key="div2"></div>
  8. </div>
  9. </body>
  10. <script src="js/vue.js"></script>
  11. <script>
  12. new Vue({
  13. el: '#app',
  14. data: {
  15. s1:false
  16. }
  17. })
  18. </script>

1635151-20190626204352885-260246655.png

点击颜色选项变换颜色,下面可以是个大页面

  1. <meta charset="utf-8">
  2. <style>
  3. ul li {
  4. border: 1px solid black;
  5. width: 60px;
  6. float: left;
  7. }
  8. ul {
  9. list-style: none;
  10. }
  11. ul:after {
  12. content: "";
  13. display: block;
  14. clear: both;
  15. }
  16. .wrap {
  17. width: 500px;
  18. height: 200px;
  19. }
  20. .red {
  21. background-color: red; }
  22. .blue {
  23. background-color: blue; }
  24. .green {
  25. background-color: green; }
  26. </style>
  27. <div id="app">
  28. <!-- v-if v-else-if v-else 案例 -->
  29. <ul>
  30. <li @click="changeWrap(0)">red</li>
  31. <li @click="changeWrap(1)">green</li>
  32. <li @click="changeWrap(2)">blue</li>
  33. </ul>
  34. <!-- red页面逻辑结构 -->
  35. <div class="wrap red" v-if="tag == 0" key="aaa"></div>
  36. <!-- green页面逻辑结构 -->
  37. <div class="wrap green" v-else-if="tag == 1" key="bbb"></div>
  38. <!-- blue页面逻辑结构 -->
  39. <div class="wrap blue" v-else key="ccc"></div>
  40. <!-- v-if相关分支操作,在未显示情况下,是不会被渲染到页面中 -->
  41. <!-- 通过key全局属性操作后,渲染过的分支会建立key对应的缓存,提高下一次渲染速度 -->
  42. </div>
  43. <script src="js/vue.js"></script>
  44. <script type="text/javascript">
  45. new Vue({
  46. el: "#app",
  47. data: {
  48. tag: 0,
  49. },
  50. methods: {
  51. changeWrap (num) {
  52. this.tag = num;
  53. }
  54. }
  55. })
  56. </script>

转载于:https://www.cnblogs.com/zhengyuli/p/11093819.html

发表评论

表情:
评论列表 (有 0 条评论,403人围观)

还没有评论,来说两句吧...

相关阅读

    相关 VUE

    一、什么是VUE Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScr

    相关 Vue

    上一节搭建了vue的简单项目的开发环境,这一节来说说Vue的基本使用  >   初识Vue: 1. 想让程序运行,必须要创建一个Vue实例,且传入配置对象(el) 2.

    相关 vue

    vue 我们先认识一下什么是vue?其实就是用来构建用户界面的渐进式框架,vue指令就是操作DOM命令而准备的。安装或引用[vue][]你也可以查[开发文档][Link

    相关 VUE

    一、什么是vue vue是一个渐进式的前端js框架。所谓渐进式框架,其实就是把框架分层。最核心的部分是视图层渲染,然后往外是组件机制,在这个基础上再加入路由机制、状态管理

    相关 Vue

    渐进式JavaScript框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架的形式完成整个web前端项目 什么是Vue vue可

    相关 Vue

    一.  Vue的简单介绍   前端、django的重点简单描述: """ 1、BBS:前后台不分离的web项目 前台页面主要是通过后台逻