• vue基础语法01


    1. 模板语法
      1.1 插值
        1.1.1 插入文本内容
              {{msg}}、v-text
        1.1.2 插入html代码
              使用v-html指令用于输出html代码          
        1.1.3 添加HTML属性.
              通过v-bind:给标签添加HTML属性
        1.1.4 表达式
              Vue提供了完全的JavaScript表达式支持
              {{str.substr(0,6).toUpperCase()}}
              {{ number + 1 }}
              {{ ok ? 'YES' : 'NO' }}

      1.2 指令
          指的是带有“v-”前缀的特殊属性。
        ## demo2.html
        1.2.1 核心指令
              (v-if|v-else|v-else-if)/v-show/v-for/v-bind/v-on/v-model

              v-if|v-else|v-else-if:根据其后表达式的bool值进行判断是否渲染该元素
                他们只能是兄弟元素
                v-else-if上一个兄弟元素必须是v-if
                v-else上一个兄弟元素必须是v-if或者是v-else-if

              v-show:与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style="display:none"
                案例:显示/隐藏 组件

              v-for:类似JS的遍历,
                     遍历普通数组、遍历对象

              v-bind
              v-on
              v-model:用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值   
                v-for/v-model一起绑定[多选]复选框和单选框  
      
        1.2.2 参数
              一些指令能够接收一个“参数”,在指令名称之后以冒号表示,例如:
              ...
              在这里href是参数,告知v-bind指令将该元素的href属性与表达式url的值绑定 
              ...
              在这里click参数是监听的事件名。


        ## demo4.html 
        1.2.3 动态参数
              从2.6.0开始,可以用方括号括起来的JavaScript表达式作为一个指令的参数
              ...

              同样地,你可以使用动态参数为一个动态的事件名绑定处理函数
              ...

              注1:动态参数表达式有一些语法约束,evName无效,evname有效,回避大写

        1.2.4 简写
              Vue为v-bind和v-on这两个最常用的指令,提供了特定简写
              ...
              ...
      
              ...
              ... 


    ## demo6.html  
    3. 过滤器
       全局过滤器
       Vue.filter('filterName', function (value) {
         // value 表示要过滤的内容
       });
       局部过滤器
       new Vue({
         filters:{'filterName1':function(value){}},
         filters:{'filterName2':function(value){}}
       });

       vue允许你自定义过滤器,被用作一些常见的文本格式化,格式如下:
       
       {{ name | capitalize }}

       
       


       
       注1:过滤器函数接受表达式的值作为第一个参数 
       注2:过滤器可以串联     
            {{ message | filterA | filterB }}
       注3:过滤器是JavaScript函数,因此可以接受参数: 
            {{ message | filterA('arg1', arg2) }}

       注4:js定义一个类
            function Stu(){};
            Stu.prototype.add(a,b){};//添加一个新的实例方法

       案例:首字母大写/日期格式化

     
    ## demo7.html 
    4. 计算属性
       计算属性可用于快速计算视图(View)中显示的属性。
       这些计算将被缓存,并且只在需要时更新.
       computed:{
           xxx1:function(v){
              
           },
           xxx2:function(v){
              
           }
       }

       xxx1和xxx2:是被监听的属性;
       参数v同步被监听的属性。

       注1:前端面试题:JS中的let和var的区别
            { 
              var i = 9;
            } 
            console.log(i);  // 9

            ES6新增的let,可以声明块级作用域的变量
            {  
              let i = 9;     // i变量只在 花括号内有效!!!
            } 
            console.log(i);  // Uncaught ReferenceError: i is not defined
       

    ## demo8.html 
    5. 监听属性
       监听属性 watch,我们可以通过 watch 来响应数据的变化
       xxx:代表被监听的属性,必须存在
       watch:{
          xxx:function(v){

          }
       }

       小结:methods、computed、watch三者的区别及使用场景:
        computed和watch是基于他的依赖进行缓存的,只有在他的的相关依赖发生改变的时候才会重新计算。如果他的相关依赖并没有发生改变,每次访问都是返回他的缓存的值。
        methods则是每次触发重新渲染之后,调用方法会再次执行函数。
        computed 和 watch 的相同和不同之处:
            相同点:computed和watch 都是以vue的依赖追踪为基础的,都是希望当依赖发生改变的时候,发生改变;
            不同点:watch一般是监听一个数据,从而影响多个数据;computed一般是计算一个属性,这个属性受多个数据影响。
            一般使用computed,但是如果需要异步,或者数据开销太大的情况下,使用watch.
        
        总结.
            当我们不希望有缓存的时候,就使用methods
            如果允许有缓存存在:computed>watch>methods;

  • 相关阅读:
    Java设计模式之外观模式
    事件的事后调查
    JVM调优的GC日志观察解读
    Ubuntu中Python3找不到_sqlite3模块
    技术团队要小心,那些技术过早优化的迹象
    【老生谈算法】matlab实现K均值聚类算法——K均值聚类算法
    uniapp实战项目 (仿知识星球App) - - 配置开发工具和全局css样式
    深度学习入门(三十三)卷积神经网络——ResNet
    springboot(13):spring 过滤器和拦截器的区别
    Nginx的操作
  • 原文地址:https://blog.csdn.net/m0_67514201/article/details/126171435