这篇随笔是为了记录vue.js引用出错的原因,看到最后原来是vue.js代码放在head中不能正常使用,要最后发现要将其放在body中才行。。。
原来是js代码放在head和body中的区别问题,占个坑,来埋点个人理解。
 
现在个人将script块分为js执行代码和js函数两大块。
例如:
js执行代码在页面中可能长成这个鬼样:
<script>
var hello = "helloworld";
</script>
而js函数则是这副嘴脸:
<script>
function sayhello(){
var hello = "helloworld";
}
</script>
 
为了方便理解,现在将js和html比喻如下:
实际行为=js执行代码
指导手册=js函数
组装赛车=html页面
 
以下对js代码放在head和body中的区别进行具体解释:
1.放在head中,则script在页面加载之前就有了,分情况,
  如果script块中是js执行代码,则相当于实际行为顺序执行(不可逆),但组装赛车只有零零散散的零件陆陆续续的到货,并没有完全到货,导致某些实际行为需要操作的零件找不到,即组装赛车的某些关键步骤被省略了。
  如果script块中是js函数,则相当于指导手册先于组装赛车先到货,因为只是书面的指导手册,没有实际执行什么行为,所以最终不会有实际行为的缺失。
 
2.放在body中,则script在页面加载之后才有,同样分情况,
  如果script块中是js执行代码,因为此时组装赛车的所有零件都已经到货了,所以按实际行为来操作,所有行为都可以成功的执行。
  如果script块中是js函数,则相当于组装赛车先到货,指导手册后到货,之后按照指导手册进行零件拼装即可成功组装成赛车,同样不会有实际行为的缺失。
 
所以,如果页面引入的是js函数,那么不管置于head还是body中,都没有区别。
但是如果是js执行代码,那就要考虑dom节点是否存在的情况了。

vue.js引用出错-script代码块放在head和body中的区别的更多相关文章

  1. java构造代码块,构造函数和普通函数的区别和调用时间

    在这里我们谈论一下构造代码块,构造函数和普通函数的区别和调用时间.构造代码块:最早运行,比构造函数运行的时间好要提前,和构造函数一样,只在对象初始化的时候运行.构造函数:运行时间比构造代码块时间晚,也 ...

  2. 关于Hbuild引用mui常用代码块以及部分控件.

    MUI-最接近原生APP体验的高性能前端框架, 追求性能体验,是我们开始启动MUI项目的首要目标,轻量必然是重要特征: MUI不依赖任何第三方JS库,压缩后的JS和CSS文件仅有100+K和60+K, ...

  3. Vue.js学习笔记-script标签在head和body的区别

    初学JavaScript,项目需要没有系统学习,只能边查资料边码代码,埋下的坑不知道有多少,还是建议时间充足的情况下系统的将Javascript学习一遍 ,涉及的HTML知识也务必了解. 问题 最开始 ...

  4. Vue.js最简单的代码

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. java的同步方法和同步代码块,对象锁,类锁区别

    /** * @author admin * @date 2018/1/12 9:48 * 作用在同一个实例对象上讨论 * synchronized同步方法的测试 * 两个线程,一个线程调用synchr ...

  6. JS代码放在head和body中的区别分析

    最近一直在忙工作,没有时间来写博客了,不过今天做网站的时候碰到一个问题就是JS脚本存放的位置不同其效果不同.起初我没在意这个问题,后来一直解决不了,通过上网与查资料问同事,终于我明白了,原来我碰到了这 ...

  7. 在vue.js引用图片的问题

    <div id="img"> <img src="img.png" class="img"> </div> ...

  8. 使用vue.js 引用阿里图标 --无法显示(报错)

    在webpack.config.js配置文件中添加 { test: /\.(eot|svg|ttf|woff|woff2)$/, loader: 'file-loader'}

  9. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

随机推荐

  1. 19.Eclipse 修改默认的keystore签名文件

    Android开发中apk运行都需要签名,就算连接手机直接运行调试,apk都有签名,开发工具会有默认的debug_keyStore Eclipse ADT调试运行使用的是临时生成的Debug专用证书, ...

  2. 升级wampserver3.0的PHP版本到7.1

    windows系统下,目前wampserver的最高版本为3.0.6,其中的PHP最高版本为7.0.10,博主想要安装laravel5.6最新版本,却看到需要PHP版本>=7.1.3,无奈之下, ...

  3. C语言中的extern

    extern: 这个关键字真的比较恶心,在定义变量的时候,extern居然可以被省略(定义时,默认均省略): 在声明变量的时候,extern必须加在变量前. 所以有时候你搞不清楚是声明还是定义.:变量 ...

  4. Mysql—(1)—

    sql语句 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 在使用它时,只需要发出“做什么”的命 ...

  5. java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection

    在Sqoop往mysql导出数据的时候报了这个错误,一开始还以为是jar包没有打进去或者打错位置了,未解便上网查询. Error reading from database: java.sql.SQL ...

  6. cdoj1633 去年春恨却来时,落花人独立,微雨燕双飞

    地址:http://acm.uestc.edu.cn/#/problem/show/1633 题目: 去年春恨却来时,落花人独立,微雨燕双飞 Time Limit: 3000/1000MS (Java ...

  7. spark examples 导入idea并测试

    记录下自己使用idea导入spark examples项目的过程. spark examples 项目可以给我们提供很多有益的参考,经常看看这些代码有助于提高我们写scala代码的水平. 只导入spa ...

  8. JVM内存结构 JVM的类加载机制

    JVM内存结构: 1.java虚拟机栈:存放的是对象的引用(指针)和局部变量 2.程序计数器:每个线程都有一个程序计数器,跟踪代码运行到哪个位置了 3.堆:对象.数组 4.方法区:字节流(字节码文件) ...

  9. iPhone X 游戏闪退:NSUnknownKeyException

    目前很多游戏在iPhone X手机 wifi情况下,启动时候闪退,在4G网络时候不闪退. 闪退的log: #0 Thread NSUnknownKeyException [<UIStatusBa ...

  10. kafka监控搭建

    1. 下载 wget https://github.com/quantifind/KafkaOffsetMonitor/releases/download/v0.2.1/KafkaOffsetMoni ...