使用v-if v-else发现没有执行

使用v-if v-else发现没有执行

最近在学习Vue,因为刚开始学习,所以总会遇到这样那样的问题,今天要说的一个错误就是在看Vue的官方文档的时候,发现在使用v-ifv-else指令的时候,相应的内容都出现了

初始代码:

<div v-if="Math.random > 0.5">
  " Math.random > 0.5 "
</div>
<div v-else>
  " Math.random <= 0.5 "
</div>

显示的结果:

 " Math.random > 0.5 "
" Math.random <= 0.5 " 

后来发现,我的这个是忘记了创建实例,每一个Vue应用都是应该创建实例的,所以修改后的代码如下:

    <div id="test">
        <div v-if="Math.random > 0.5">
           " Math.random > 0.5 "
        </div>
        <div v-else>
            " Math.random <= 0.5 "
        </div>
    </div>
    <script type="text/javascript">
        new Vue({
            el : "#test"
        })
    </script>
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
陀螺原理: 陀螺是一个古老的学科, 自 1852 年, 傅科将高速旋转刚体命名为陀螺, 至今已有 160 年左右的历史。陀螺连同其支撑框架总体被称作陀螺仪。 陀螺具有独特的力学特性, 如定轴性、进动性和陀螺动力效应等,因而常 被作为陀螺稳定装置的敏感元件或者执行元件。 陀螺稳定装置是一种以陀螺为 敏感元件或执行元件,使被稳定对象在干扰因素作用下能相对大地坐标系保持 方位不变或者在指令力矩的作用下使其按照给定规律相对惯性空间转动的陀螺 装置。 陀螺稳定装置按照陀螺力矩在稳定装置中的作用, 可分为直接式陀螺稳定装置、间接式陀螺稳定装置、 动力式陀螺稳定装置、 指示式陀螺稳定装置和指 示-动力式陀螺稳定装置。直接式陀螺稳定装置是一种用陀螺力矩抵抗作用于被 稳定对象上的干扰力矩,而使被稳定对象相对惯性空间保持方位的稳定的陀螺 稳定装置。 在这类稳定装置中, 陀螺是直接抵抗干扰力矩装置的执行元件。 下图为独轮车结构: 本设计所研究的是基于惯性飞轮的自行车侧向平衡控制。 下图为本实验平台: 飞轮平衡效果测试视频: 自行车初步行走测试视频: 主控采用STM32f103RCT6,传感器采用的是MPU6050,姿态解算采用的是卡尔曼滤波,侧向飞轮控制采用的是角度-角速度串级PID控制。 工程编译环境为IAR7.3~7.6,软件百度云下载地址为:https://pan.baidu.com/s/1skT57at 代码提供了必要的注释,PID控制器示例代码如下: float PID_Control(PID_Controler *Controler) { /*******偏差计算*********************/ Controler->Last_Err=Controler->Err;//保存上次偏差 Controler->Err=Controler->Expect-Controler->FeedBack;//期望减去反馈得到偏差 if(Controler->Err_Limit_Flag==1)//偏差限幅度标志位 { if(Controler->Err>=Controler->Err_Max) Controler->Err= Controler->Err_Max; if(Controler->Err<=-Controler->Err_Max) Controler->Err=-Controler->Err_Max; } /*******积分计算*********************/ if(Controler->Integrate_Separation_Flag==1)//积分分离标志位 { if(ABS(Controler->Err)<=Controler->Integrate_Separation_Err) Controler->Integrate+=Controler->Ki*Controler->Err; } else { Controler->Integrate+=Controler->Ki*Controler->Err; } /*******积分限幅*********************/ if(Controler->Integrate_Limit_Flag==1)//积分限制幅度标志 { if(Controler->Integrate>=Controler->Integrate_Max) Controler->Integrate=Controler->Integrate_Max; if(Controler->Integrate<=-Controler->Integrate_Max) Controler->Integrate=-Controler->Integrate_Max ; } /*******总输出计算*********************/ Controler->Last_Control_OutPut=Controler->Control_OutPut;//输出值递推 Controler->Control_OutPut=Controler->Kp*Controler->Err//比例 +Controler->Integrate//积分 +Controler->Kd*(Controler->Err-Controler->Last_Err);//微分 /*******总输出限幅*********************/ if(Controler->Control_OutPut>=Controler->Control_OutPut_Limit) Controler->Control_OutPut=Controler->Control_OutPut_Limit; if(Controler->C
JAVA线程基本学习, JAVA多线程的特性= 线程池: 本质上是一个对象池, 用来管理线程资源. 在任务执行前, 需要从线程池中拿出线程来执行. 在任务执行完成之后, 需要把线程放回线程池. 线程池好处: 降低资源的消耗, 线程本身是一种资源, 创建和销毁都会消耗CPU内存, 频繁的创建和销毁会浪内存. 提高任务执行的响应速度, 任务执行时, 可以不必等线程创建完成之后在执行,可以直接获取线程执行任务. 提高线程的可管理性, 线程不能无限制的创建, 需要进行统一的分配, 调优和监控. 不适用线程池坏处: 频繁的线程创建和销毁会占用更多的CPU和内积. 频繁的创建和销毁会对gc产生比较大的压力. 线程太多,线程切换带来的开销将不可忽视. 线程太少, 多核CPU得不到充分利用, 浪费资源. 线程池实现原理: 分为三部分: 核心线程池 线程池 队列 拒绝策略 主要流程: 1.判断核心线程池是否已满, 如果不是, 则创建线程执行任务 2.如果核心线程池满了, 判断队列是否满了, 如果队列没满, 将任务放在队列中 3.如果队列满了, 则判断线程池是否已满, 如果没满, 创建线程执行任务 4.如果线程池满了, 按照拒绝策略对任务进行处理 JDK中提供了一个线程池工厂: Executors ,很多工厂方法, 可以创建多种线程池 1.单一线程池 ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor(); 该线程池只有一个线程, 若多个任务被提交到此线程池, 那么会被缓冲到队列,当线程空闲时,按照FIFO的方式进行处理. 2.固定数量线程池 ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(5); 和创建单一线程池类似, 不同的是线程池中有多个线程, 可以并行处理任务, 若多个线程任务被提交到此线程池, 会有以下执行过程: 如果线程的数量未达到指定数量, 则创建新线程执行任务. 如果线程池的数量达到了指定数量, 而且此时有线程是空闲的, 则取出空闲线程来执行任务. 如果没有线程是空闲的, 则将任务缓冲到队列, 当线程空闲的时候, 按照FIFO的方式进行处理. FIFO: 先进先出 3.带缓冲的线程池 该线程池中, 核心线程池长度为0, 线程池最大长度为Integer.MAX_VALUE.以SynchronousQueue作为等待队列, 从而每次往队列中插入一个元素, 必须等待另一个线程从这个队列删除一个元素. 定时调度 4.定时调度的线程池 ExecutorService newCachedThreadPool = Executors.newScheduledThreadPool(); ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(5); ExecutorService newWorkStealingPool = Executors.newWorkStealingPool() 线程池家族 线程池的顶层接口是Executor, 这个接口定义了一个核心方法executor(Runnable command), 这个方法最后被ThreadPoolExecutor类实现, 这个方法用来传入任务, 并且该类是线程池的核心类, 构造方法如下 : public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue); public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory); public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,RejectedExecutionHandler handler); public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueu, ThreadFactory threadFactory,RejectedExecutionHandler handler); 参数意义: CorePoolSize: 核心线程池大小, 如果核心线程池有空闲的位置, 新的任务就会被核心线程池新建一个线程执行, 执行完毕不会销毁线程, 线程会进入缓冲队列等待再次被运行 MaximunPoolSize: 线程池能创建最大的线程数量, 如果核心线程池和缓冲队列都已经满了, 新的任务就会进来创建新的线程来执行, 但是数量不能超过maximunPoolSize, 否则采取拒绝接受任务策略 KeepAliveTime: 非核心线程能够空闲的最长时间, 超过时间, 线程终止, 这个参数默认只有在线程数量超过核心线程池大小时, 才会起作用. Unit: 时间单位, 和keepAliveTime配合使用. WorkQueue: 缓冲队列, 用来存放等待被执行的任务 ThreadFactory: 线程工厂, 用来创建线程, 一般有三个选择 ArrayBlockingQueue LinkedBlockingQueue SynchronousQueue Handler :拒绝处理策略, 线程数量大于最大线程数量就会拒绝处理策略, 四种策略为 ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。 ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。 ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程) ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务 Executor接口有一个子接口ExecutorService, ExecutorService的实现类AbstracExecutorService, 而ThreadPoolExecutor正是AbstracExecutorService的子类. ThreadPoolExecutor还有两个常用的方法shutdown和submit,两者都用来关闭线程池, 但是submit有一个结果返回. 线程池任务执行执行executor(Runnable command)方法后, 传入一个任务, public void execute(Runnable command) { if (command == null) throw new NullPointerException(); if (poolSize >= corePoolSize || !addIfUnderCorePoolSize(command)) { if (runState == RUNNING && workQueue.offer(command)) { if (runState != RUNNING || poolSize == 0) ensureQueuedTaskHandled(command); } else if (!addIfUnderMaximumPoolSize(command)) reject(command); } } (传入的对象实现了Runnable接口, 这就解释了: 为什么实现多线程的方式中继承Thread类不能使用线程池了) 执行过程: 首先判断任务是否为空, 为空抛出空指针异常, 否则执行下一个判断: 当前线程数量是否小于核心线程池线程数量, 是,则执行addIfUbderCorePollSize(command)方法, 在核心线程池中创建新的线程, 并且执行这个任务 总结: 如果当前线程池中的数目小于corePollSize, 则每来一个任务, 就会创建一个新的线程去执行这个任务 如果当前线程池中的线程数目>=corePollSize, 则每来一个任务, 会尝试将其添加到缓冲队列中, 如果添加成功, 则该任务会等待空闲线程将其取出去执行, 如果添加失败(一般是以为任务队列已经满了), 则会尝试创建新的线程去执行这个任务. 如果当前线程池中的线程数目达到maximunPoolSize, 则会采取任务拒绝策略进行处理. 如果线程池中的线程数量大于corePoolSize时, 如果某线程空闲时间超过keepAliveTime, 线程将被终止, 直至线程池中的线程数目小于等于corePoolSize; 如果允许核心池中的线程设置存活时间, 那么核心池中的线程空闲时间超过keepAliveTime, 线程也会被终止.
v-if和v-else是Vue.js中的条件渲染指令。v-if用于根据条件是否为true来显示或隐藏元素。当条件为true时,v-if内部的元素会被渲染显示出来;当条件为false时,v-if内部的元素会被从DOM中移除。 v-else则是和v-if一起出现的,当v-if判断为true时,v-else不执行;当v-if判断为false时,v-else才执行使用v-else可以在条件不满足时显示其他内容。 另外,Vue.js还提供了v-else-if指令,用于在多个条件之间切换。v-else-if可以用来添加更多的条件判断,如果前面的if和else-if都不成立,则执行v-else的代码。 在页面加载时,v-if和v-else-if会根据条件来决定是否渲染相应的元素。如果条件不满足,v-if和v-else-if内部的元素会被加载然后再消失掉。如果需要解决这个问题,可以使用v-show指令代替v-if,v-show只是简单地根据条件控制元素的显示与隐藏,不会在DOM中添加或移除元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue中的v-if和v-else](https://blog.csdn.net/weixin_50357864/article/details/115259987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [V-if V-else-if V-else 的用法](https://blog.csdn.net/DSs1206/article/details/119188757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vuev-if 和v-else-if页面加载出现闪现的问题及解决方法](https://download.csdn.net/download/weixin_38571603/12951097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值