Vue-高级讲师之笔记01

1、vue:


   读音:    v-u-e
   view


   vue到底是什么?
      一个mvvm框架(库)、和angular类似
      比较容易上手、小巧
   mvc:
      mvp
      mvvm
      mv*
      mvx
   官网:http://cn.vuejs.org/    
   手册:http://cn.vuejs.org/api/


2、vue和angular区别?


   vue——简单、易学
      指令以 v-xxx
      一片html代码配合上json,在new出来vue实例
      个人维护项目


      适合: 移动端项目,小巧


      vue的发展势头很猛,github上start数量已经超越angular


   angular——上手难
      指令以 ng-xxx
      所有属性和方法都挂到$scope身上
      angular由google维护
      
      合适: pc端项目


   共同点: 不兼容低版本IE
-------------------------------------------
3、vue基本雏形:
   angular展示一条基本数据(伪代码):
      var app=angular.module('app',[]);


      app.controller('xxx',function($scope){ //C
         $scope.msg='welcome'
      })


      html:
      div ng-controller="xxx"
         {{msg}}
   vue:
      html:
         <div id="box">
            {{msg}}
         </div>


         var c=new Vue({
            el:'#box', //选择器  class tagName
            data:{
                msg:'welcome vue'
            }
         });
4、常用指令:
   angular: 
       ng-model   
       ng-controller
       ng-repeat
       ng-click
       ng-show  


      $scope.show=function(){}
   指令: 扩展html标签功能,属性


   v-model    一般表单元素(input)  双向数据绑定


5、循环:
      v-for="name in arr"
         {{$index}}


      v-for="name in json"
         {{$index}} {{$key}}
   
      v-for="(k,v) in json"
6、事件:
      v-on:click="函数"


      v-on:click/mouseout/mouseover/dblclick/mousedown.....


      new Vue({
         el:'#box',
         data:{ //数据
             arr:['apple','banana','orange','pear'],
             json:{a:'apple',b:'banana',c:'orange'}
         },
         methods:{
             show:function(){   //方法
                 alert(1);
             }
         }
      });
7、显示隐藏:
      v-show=“true/false”
bootstrap+vue简易留言板(todolist):
   
   bootstrap: css框架   跟jqueryMobile一样
      只需要给标签 赋予class,角色
      依赖jquery


   确认删除?和确认删除全部么?
-----------------------------------------
8、事件:
   v-on:click/mouseover......
   
   简写的:
   @click=""     推荐


   事件对象:
      @click="show($event)"
   事件冒泡:
      阻止冒泡:  
         a). ev.cancelBubble=true;
         b). @click.stop    推荐
   默认行为(默认事件):
      阻止默认行为:
         a). ev.preventDefault();
         b). @contextmenu.prevent   推荐
9、键盘:
      @keydown   $event ev.keyCode
      @keyup


      常用键:
         回车
            a). @keyup.13
            b). @keyup.enter
         上、下、左、右
            @keyup/keydown.left
            @keyup/keydown.right
            @keyup/keydown.up
            @keyup/keydown.down
         .....
-----------------------------------------
10、属性:
   v-bind:src=""
      width/height/title....
   
   简写:
   :src=""    推荐


   <img src="{{url}}" alt=""> 效果能出来,但是会报一个404错误
   <img v-bind:src="url" alt="">  效果可以出来,不会发404请求
-----------------------------------------
class和style:
   :class=""  v-bind:class=""
   :style=""  v-bind:style=""


   :class="[red]" red是数据
   :class="[red,b,c,d]"
   
   :class="{red:a, blue:false}"


   :class="json"
      
      data:{
         json:{red:a, blue:false}
      }
   --------------------------
   style:
   :style="[c]"
   :style="[c,d]"
      注意:  复合样式,采用驼峰命名法
   :style="json"
-----------------------------------------
11、模板:
   {{msg}}       数据更新模板变化
   {{*msg}}   数据只绑定一次
   
   {{{msg}}}  HTML转意输出
-----------------------------------------
12、过滤器:-> 过滤模板数据
   系统提供一些过滤器:
   
   {{msg| filterA}}
   {{msg| filterA | filterB}}


   uppercase  eg:    {{'welcome'| uppercase}}
   lowercase
   capitalize


   currency   钱


   {{msg| filterA 参数}}


   ....
-----------------------------------------
13、交互:
   $http  (ajax)


   如果vue想做交互


   引入: vue-resouce


   get:
      获取一个普通文本数据:
      this.$http.get('aa.txt').then(function(res){
          alert(res.data);
      },function(res){
          alert(res.status);
      });
      给服务发送数据:√
      this.$http.get('get.php',{
          a:1,
          b:2
      }).then(function(res){
          alert(res.data);
      },function(res){
          alert(res.status);
      });
   post:
      this.$http.post('post.php',{
          a:1,
          b:20
      },{
          emulateJSON:true
      }).then(function(res){
          alert(res.data);
      },function(res){
          alert(res.status);
      });
   jsonp:
      https://sug.so.360.cn/suggest?callback=suggest_so&word=a


      https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=jshow


      this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
          wd:'a'
      },{
          jsonp:'cb' //callback名字,默认名字就是"callback"
      }).then(function(res){
          alert(res.data.s);
      },function(res){
          alert(res.status);
      });
      
https://www.baidu.com/s?wd=s


   作业:
      1. 简易留言-> 确认删除? 确认删除全部
      2. 用vue get 写个例子   weibo

































`vue-property-decorator` 是一个用于在 Vue 中使用装饰器语法的库,它提供了一些装饰器来简化 Vue 组件的开发过程。这些装饰器可以用于定义组件的属性、方法、计算属性、生命周期钩子等。 以下是一些常用的装饰器和它们的用法: - `@Component(options?: ComponentOptions)`:将一个类声明为一个 Vue 组件。可以传入一个可选的 `ComponentOptions` 对象来配置组件选项,例如 `template`、`props`、`computed` 等。 - `@Prop(options?: (Vue.PropOptions | Vue.Constructor[] | Vue.Constructor)[] | Vue.PropOptions)`:定义一个组件的 prop 属性。可以传入一个可选的 `PropOptions` 对象来配置 prop 的类型、默认值等。 - `@Watch(path: string, options?: WatchOptions)`:监听一个属性或表达式的变化,并在变化时执行相应的方法。可以传入一个可选的 `WatchOptions` 对象来配置监听选项,例如 `deep`、`immediate` 等。 - `@Emit(event?: string)`:将一个方法标记为触发事件的方法,并指定要触发的事件名。可以传入一个可选的事件名,默认为方法名。 - `@Ref(refKey?: string)`:获取子组件或 DOM 元素的引用,并将其赋值给指定的属性。可以传入一个可选的引用键,默认为属性名。 - `@Inject(key?: string | symbol)`:注入一个父组件提供的属性或方法。可以传入一个可选的注入键,默认为属性名。 - `@Provide(key?: string | symbol)`:在组件中提供属性或方法,以供子组件注入使用。可以传入一个可选的提供键,默认为属性名。 - `@Model(event?: string, options?: (PropOptions | Constructor[] | Constructor)[] | PropOptions)`:将一个 prop 属性设置为组件的 v-model。可以指定要触发的事件名和 prop 的配置选项。 这些装饰器可以与 `vue-class-component` 一起使用,帮助我们更清晰、简洁地定义 Vue 组件,并提供更好的类型支持和可读性。 希望这些笔记对你有所帮助!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手掌日月摘星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值