vue学习篇---基础命令

news/2024/7/10 1:46:51 标签: vue, 基础

vue_0">vue基础

  • 每天学习一点点,从0到1,从无到有。初步成为vue大神。
  • 小编会将自身每天的学习记录的笔记,分享给大家。

vue_test01_4">小编自己写的代码案例及笔记:https://github.com/kedaya-github/vue_test01

vue_5">vue简介

  • vue是一个前端框架。

  • Vue.js是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目进行整合。

  • 前端工作主要负责MVC中的V这一层,主要与用户的界面打交道。

  • 在Vue中,一个核心的概念,就是让程序员不再操作DOM元素,解放了程序员的双手,让程序员可以有更多的时间去关注业务逻辑。

框架和库的区别

  • 框架: 是一套完整的技术解决方案;对项目的侵入性比较大,项目如果需要更换框架,则需要重新构架整个项目。

  • 库(插件): 提供某一个小功能,对项目的侵入小较小,如果某个库无法完成某些需求,可以很容易切换到其他库实现需求。

MVVM概念

  • MVC是后端的分层开发概念;

  • MVVM是前端视图层的概念,主要关注于 视图分离 , 也就是说: MVVM把前端的视图层,分成了三个部分 Model , View , VM ViewModel

  • 在MVVM之前,开发人员从后端获取需要的数据模型,然后要通过DOM操作Model渲染到View中。而后当用户操作视图,我们还需要通过DOM获取View中的数据,然后同步到Model中。

  • • 只要我们Model发生了改变,View上自然就会表现出来。

  • • 当用户修改了View,Model中的数据也会跟着改变。

vue_25">vue对象

  • 在js代码中 定义vue实例对象

      //使用vue创建  vm对象
      var vm = new Vue({
          el:"#app",   //el 属性定义了 当前vue实例的作用区域
          data:{   // data属性 定义了vue实例所用到的 数据
              msg:"欢迎来到vue",
              mm:"你好好",
              ht:"<h1>我最大</h1>",
              mytitle:"自定义的title"
          },
          methods:{  //methods属性定义了当前vue实例所用到的函数方法
              show:function () {
                  alert("hello");
              },
      		edit(){
      			aler("吃");
      		}
    
          }
      })
    

vue_48">vue指令

  • v-model : 双向绑定

  • {{ 参数名称 }} : 插值表达式

  • v-cloak : 解决 插值表达式闪烁的问题

      需要先设置一个css样式:
      [v-cloak]{
          display: none;
      }
      //然后在 {{}} 的父节点上使用 v-cloak,
      <p v-cloak>{{msg}}</p>
    
  • v-test : 将参数赋值到标签中,效果类似 插值表达式 ,但是数据会覆盖标签中原有的内容。

  • v-html : 将html标签的参数,进行赋值

  • v-bind: : 是vue中,提供的用于绑定属性的指令。v-bind可以简写为一个英文:号

      //使用vue创建  vm对象
      var vm = new Vue({
          el:"#app",
          data:{
              msg:"欢迎来到vue",
              mm:"你好好",
              ht:"<h1>我最大</h1>",
              mytitle:"自定义的title"
          }
      })
      <button value="按钮" v-bind:title="mytitle">按钮</button>
      可以将button的title属性,指定一个变量值mytitle。
    
  • v-on:事件 : 事件绑定机制 , 参数给vue实例中,定义的函数方法名 . v-on 可以缩写为一个**@**

  • 在调用方法中传递参数 $event 可以将事件对象传递到方法中。

      <button value="按钮" v-bind:title="mytitle"  v-on:click="show">按钮</button>
    
  • => : 建造函数,用于在函数方法定义,可以使方法中的this与方法外的this保持一致。

      	methods:{
              lang() {
    
      			                //进行判断 , 定时器是否为null  不为nul表示已经开启了 跑马灯
              if (this.intervalId != null) return;
    
              var _this = this;  //设置一个变量 接收当前方法的 this对象关键字
                  setInterval(() => {  // => : 建造函数, 可以是方法内的this关键字与
                                          //方法外的this关键字			保持一致
                      //截取第一个字  将第一个 拼接到  最后一个位置
                      var start = _this.msg.substring(0,1);
                      var end = _this.msg.substring(1);
                      _this.msg = end + start;
                  },400);
              }
          }
    

vue_105">vue的一些注意概念

  • 在一个vue实例中,data中的数据,如果发生改变,那么引入的标签的显示也会一起改变。

事件修饰符

  • .stop : 阻止冒泡行为,只会触发当前自己的事件方法

  • .prevent : 阻止默认行为,比如a标签中的跳转网页,可以取消阻止不让跳转

  • .capture : 实现捕获触发的机制。先触发内部的事件,再触发外部的事件。

  • .self : 阻止当前事件的触发,不处理其他的冒泡行为。

  • .once : 只能触发一次

v-model和双向数据绑定

  • 一般情况下,在vue的对象中,修改了标签的内容数据后,页面中的数据也会一起被修改,单向数据绑定

  • 使用表单元素是,页面中也可以输入内容。那么将输入的内容绑定到vue对象的data数据中。就是双向数据绑定。

  • 使用 v-model可以实现表单元素和 Model中数据的双向数据绑定。

      <!-- h3标签 和 input的msg数据会保持一致 -->
      <div id="add" style="background-color: green;">
          <h3>{{ msg }}</h3>
          <input type="text" v-model="msg" style="width: 100%">
      </div>
    

vue_131">钩子函数 和 vue的生命周期

  • vue的生命周期分为八个部分:

      生命周期的流程:--每个流程对应一个函数,当vue处于某个阶段的时候,会自动触发该阶段的函数
      1 初始化前 --BeforeCreate
      2 初始化完成 ---***:发送ajax --created
      3 双向绑定前 ---BeforeMount
      4 双向绑定完成 --Mounted
      5 更新前 --BeforeUpdate
      6 更新完成--updated
      7 销毁前--BeforeDestroyed
      8 销毁完成--Destroyed
    
  • 钩子函数: 列如 created代表在vue实例对象创建后:

  • 我们可以在vue中定义一个created函数,代表这个时期的构造函数,执行一些方法。

      var vm = new Vue({
         el:"#app",
         data:{
             hello:''
         },
         created(){
             this.hello = 'czdx,一统江湖,千秋万代'
         }
    
  • 总结:

    • vue 中使用 this就是代表当前的vue对象。

    • vue的生命过程很丰富的,每个过程都有要完成的事情。

    • created的生命周期:vue已经创建完成,数据已经有了—>通过ajax向后台,往后操作就是进行双向数据绑定。


vuecss_167">在vue中使用css样式

通过属性绑定,为元素设置class样式

  • 在class中定义 class属性样式,然后通过vue的属性绑定形式,来给标签元素赋值。

  • 数组形式:

      <!--使用vue的属性绑定 。 使用vue的数组绑定形式-->
    
      <div :class="['red' , 'thin' , 'active']">这是一个vue的属性绑定 class样式绑定!!!</div>
    
  • 使用三元表达式:

      <!--使用vue属性绑定 , 使用vue的三元表达式-->
      <!--数组中 加 ''表示为class属性 , 不加'' 表示为data中的参数  通过对象judge是否为true来判断是否展示class属性样式-->
      <div :class="['red' , 'thin' , judge ? 'active':'']">这是一个vue的属性绑定 class样式绑定!!!</div>
    
  • 数组中嵌套对象

      <!--vue属性绑定 , 数组中嵌套嵌套对象-->
    
      <div :class="['red' , 'thin' , {'active' : judge}]">这是一个vue的属性绑定 class样式绑定!!!</div>
    
  • 使用对象形式:

      <!--使用对象形式 , 对象中的 class属性可以不加 ''-->
    
      <div :class="{'red':true , 'italic':true}">这是一个vue的属性绑定 class样式绑定!!!</div>
    

vuestyle_192">vue通过属性绑定,为元素绑定style内联样式

  • 普通绑定:

      <!--普通的style样式绑定-->
    
      <div :style="{color:'red'}">这是一个vue的属性绑定 class样式绑定!!!</div>
    
  • 使用vue对象的data参数

      <!--使用vue对象中data参数,进行绑定-->
    
      <div :style="styleobj01">这是一个vue的属性绑定 class样式绑定!!!</div>
    
  • 使用数组绑定多个style样式

      <!--使用数组形式,为元素绑定多个 内联样式属性-->
    
      <div :style="[styleobj01 , styleobj02]">这是一个vue的属性绑定 class样式绑定!!!</div>
    

for指令

  • 在标签元素中进行 for循环 , 来输出data中的数组

  • v-for循环遍历普通的数组

      <p v-for="(cust,i) in list">{{ cust }}----索引:{{ i }}</p>
    
  • v-for循环遍历对象数组

      <!--使用v-for循环,遍历数组中的对象-->
    
      <p v-for="(user,i) in list">{{ user.id }}+++{{ user.name }}----索引:{{ i }}</p>
    
  • v-for遍历对象中的属性值

      <!--v-for循环遍历对象中的属性值 ,三个参数: val值  key键 i索引-->
    
      <p v-for="(val , key ,i) in list">{{ val }}+++{{ key }}----索引:{{ i }}</p>
    
  • v-for迭代数字

      <!--v-for迭代数字 数字迭代从1开始-->
    
      <p v-for="(cust ,i) in 10">{{ cust }}----索引:{{ i }}</p>
    

注意事项

  • 在2.2.0+ 的版本里,使用v-for时,必须使用key

  • 在v-for循环的时候,key属性要使用v-bind属性绑定的形式,指定key值

  • 在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果v-for有问题,必须在使用v-for的同时,指定唯一的 字符串 / 数字类型 的key值

v-if 和 v-show

  • v-if的特点是: 每次都会重现删除或者创建元素

  • v-show的特点是: 每次刽重新进行DOM的删除和创建操作,只是切换了元素的display:none 的样式

  • v-if 有较高的切换性能消耗

  • v-show 有较高的初始渲染消耗

  • 如果元素涉及到频繁的切换,最好不要使用 v-if

  • 如果元素可能永远不会被显示出来被用户看到,则使用v-if

计算属性 computed

  • 计算属性本质方法,用途是属性

  • 计算属性必须要有返回值

  • 计算属性的名称不能与其他模块的名称一样

      computed:{
          bath(){
              //计算属性的本质是方法,使用的目的是属性。 必须要有返回值
              //名字不能与 其他区域中定义的 名字重复
              return this.birthday.getFullYear() + "---" + (this.birthday.getMonth()+1) + "---" + this.birthday.getDate();
          }
      }
    

vueaxios_264">vue的axios

  • axios是 vue 发送ajax的第三技术
  • Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
  • axios使用的是 链式调用

get请求:

  • 可以在路径后面追加数据

  • .then() : 为成功返回的处理方法

  • .catch() : 请求失败的处理方法

      // 为给定 ID 的 user 创建请求
      axios.get('/user?ID=12345')
          .then(function (response) {
          console.log(response);
      })
          .catch(function (error) {
          console.log(error);
      });
    
  • get请求在路径后面追加参数

      // 为给定 ID 的 user 创建请求
      axios.get('/user?ID=12345')
          .then(function (response) {
          console.log(response);
      })
          .catch(function (error) {
          console.log(error);
      });
      
      // 可选地,上面的请求可以这样做
      axios.get('/user', {
          params: {
              ID: 12345
          }
      }).then(function (response) {
          console.log(response);
      }).catch(function (error) {
          console.log(error);
      });
    

Post请求

  • 可以在post() 中添加传递数据

  • 需要后台使用 @RequestBody接收数据。可以传递数组等形式的数据

      axios.post('/user', {
          firstName: 'Fred',
          lastName: 'Flintstone'
      }).then(function (response) {
          console.log(response);
      }).catch(function (error) {
          console.log(error);
      });
    

axios总结

  • Post 和 Put 的注意事项一致, get 和 delete 一致
  • 可以在 .then() 等方法中,使用箭头函数,this则表示vue对象


http://www.niftyadmin.cn/n/1411037.html

相关文章

大数据时代零售企业如何进行精确营销

近年来&#xff0c;同质化商品、频繁的价格战、店铺租金上涨、电子商务的冲击等因素导致零售企业利润不断下降&#xff0c;在2015年出现了零售业关店潮这一现象&#xff0c;大量零售门店关门&#xff0c;2016年还在延续。但是&#xff0c;有人倒下&#xff0c;就有人站出来。在…

SCSF - Part 1 Modules and Shells

原文在此 http://richnewman.wordpress.com/intro-to-cab-toc/Filed under: .net, CAB, Composite Application Block, GUI, SCSF, Smart Client Software Factory, User Interface, beginners guide, c#, dotnet, introduction, technology, tutorial — Tags: CAB, Composite…

vue学习篇-Vue组件

回顾&#xff1a; 1、ES6–为Vue服务 2、Vue的基础语法 – 渐进式 {{插值表达式}}指令&#xff08;v-text、v-html、v-on&#xff08;事件&#xff09;、v-for、v-if、v-bind、v-show&#xff09;生命周期钩子函数计算属性&#xff1a;本质是方法&#xff0c;但是可以像属性…

苹果彻底告别“芯片门” 安卓N最终预览版发布

1. iPhone 6s发生的“芯片门”时间让人记忆犹新&#xff0c;不过好消息是&#xff0c;根据台媒《电子时报》消息&#xff0c;苹果已经在今年处理器生产合作伙伴名单中花掉了三星的名字&#xff0c;也就是说今年所有的A10芯片都将由台积电生产。另外值得注意的是&#xff0c;报道…

如何寻找并发掘地理大数据的价值?

如今&#xff0c;地理大数据产业在中国方兴未艾。通过地理大数据为企业提供决策服务的GeoHey&#xff0c;是其中的代表。如何寻找并发掘地理大数据的价值。我们请来GeoHey的数据总监高楠&#xff0c;分享了他对地理大数据这座金矿的“掘金秘籍”。 如何获取“无处不在”的地理大…

vue学习篇——前后端分离开发

0 复习Vue 1 MVVM&#xff1a;前端的设计模式&#xff0c;他实现了双向数据绑定&#xff0c;他与MVC有什么框架&#xff1f;MVC是没有实现双向数据绑定 2 双向数据绑定&#xff1a;当model数据发生改变之后&#xff0c;页面view层自动改动&#xff1b;当页面数据发生改变的时…

Composer使用体验

什么是Composer 简单来说&#xff0c;Composer是PHP的包依赖管理器。但是Composer并不是类似于Yum、Apt的包管理器。Composer可以用于包或者第三方库的安装&#xff0c;但是可以选择在Project范围内进行安装。Composer是受到Node的NPM启发。 Composer可以在下面的方面帮助到你&…

vue-spa单页应用程序

Vue全家桶 回顾&#xff1a; 1 ES6—为Vue服务的 2 vue基础语法 axios 3 前后端分离 4 node之npm命令 安装jquery&#xff1a;npm install jquery卸载jquery&#xff1a;npm uninstall jquery-g 全局安装&#xff1a;安装到c的用户的目录-D 开发环境的依赖安装-S 生产环…