vue.js引用出错-script代码块放在head和body中的区别

这篇随笔是为了记录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节点是否存在的情况了。

转载于:https://www.cnblogs.com/akiradunn/p/8685724.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是一个简单的 HTML 文件,使用了 Vue.js 库来实现数据绑定和渲染。让我一步一步解释这段代码的作用: 1. `<!DOCTYPE html>`:这是 HTML 文档的声明,告诉浏览器使用 HTML 的哪个版本解析页面。 2. `<html lang="en">`:指定文档的语言为英语。 3. `<head>`:HTML 头部元素,用于包含页面的元数据和引入外部资源。 4. `<meta charset="UTF-8">`:指定文档使用 UTF-8 字符编码,以支持更多字符。 5. `<meta http-equiv="X-UA-Compatible" content="IE=edge">`:告诉 IE 浏览器使用最新的渲染引擎。 6. `<meta name="viewport" content="width=device-width, initial-scale=1.0">`:设置视口的宽度和缩放比例,用于适配移动设备。 7. `<title>mvvm</title>`:设置页面的标题为 "mvvm"。 8. `<script src="../js/vue.js"></script>`:引入 Vue.js 库文件。 9. `<body>`:HTML 的主体部分,包含了页面的内容。 10. `<div id="root">`:一个 div 元素,用作 Vue 应用程序的挂载点。 11. `{{name}}` 和 `{{rank}}`:Vue 的模板语法,用于在页面输出数据。这会显示在 Vue 实例的 data 定义的 `name` 和 `rank` 的值。 12. `{{$options}}`:Vue 实例的 `$options` 属性,用于在页面输出 Vue 实例的选项对象。 13. `<script>`:JavaScript 代码块,用于创建和配置 Vue 实例。 14. `Vue.config.productionTip = false`:配置 Vue 的生产环境提示,将其设置为 `false` 可以禁用一些开发时的警告信息。 15. `new Vue({})`:创建一个 Vue 实例,通过传入的参数进行配置。 16. `el:'#root'`:指定 Vue 实例挂载的元素为 id 为 "root" 的 div 元素。 17. `data: {}`:Vue 实例的数据对象,用于存储页面需要绑定和展示的数据。 18. `name:'uzi'` 和 `rank:'RNG'`:定义了两个数据属性,分别是 `name` 和 `rank`,它们的初始值分别是 'uzi' 和 'RNG'。 整体来说,这段代码通过 Vue.js 将数据绑定到 HTML 页面上,并实现了简单的数据渲染。在页面可以显示出 `uzi` 和 `RNG` 的值,并输出 Vue 实例的选项对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值