当前位置: 首页 > wzjs >正文

湖南微信网站首都产业建设集团网站

湖南微信网站,首都产业建设集团网站,wordpress连接数据库不成功,青岛学网站建设的大学解决Vue再浏览器上更新属性不生效 问题发现问题解决 问题发现 最近在学习Vue2&#xff0c;再介绍-声明式渲染一文中&#xff0c;示例代码如下&#xff1a; <div id"app">{{ message }} </div>var app new Vue({el: #app,data: {message: Hello Vue!} …

解决Vue再浏览器上更新属性不生效

  • 问题发现
  • 问题解决

问题发现

最近在学习Vue2,再介绍-声明式渲染一文中,示例代码如下:

<div id="app">{{ message }}
</div>
var app = new Vue({el: '#app',data: {message: 'Hello Vue!'}
})

创建了第一个 Vue 应用,现在数据和 DOM 已经被建立了关联,所有东西都是响应式的。在看到我们要怎么确认呢?打开你的浏览器的 JavaScript 控制台 (就在这个页面打开),并修改 app.message 的值,你将看到上例相应地更新

然后我就尝试再浏览器的控制台中修改对应属性值,期望能看到实时更新显示,执行结果如图所示:

在这里插入图片描述
并未达到预期效果,本地示例代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app">{{message}}</div><script type="module">import Vue from 'https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.esm.browser.js'var app = new Vue({el: "#app",data: {"message": "hello, world"}})</script>
</body>
</html>

但是在代码里面执行却可以,示例代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app">{{message}}</div><script>import Vue from 'https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.esm.browser.js'var app = new Vue({el: "#app",data: {"message": "hello, world"}})app.message="hello, vue"</script>
</body>
</html>

执行结果如图所示:

在这里插入图片描述

问题解决

“出师未捷身先死”,正当我百思不得其解的时候,切换CDN版本,示例代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app">{{message}}</div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script><script>var app = new Vue({el: "#app",data: {"message": "hello, world"}})</script>
</body>
</html>

竟然成功了,执行结果如图所示:

在这里插入图片描述

我们回来看之前的问题:为什么原 ES Modules在浏览器中无法使用?先了解下什么是 ES Modules

ES ModulesECMAScript Modules)是 JavaScript 官方的模块化标准,自 ES6ES2015)起正式引入。它为 JavaScript 提供了标准化的模块导入 / 导出机制,解决了传统 JavaScript 在大型应用中依赖管理和代码组织的痛点,模块具有独立的私有作用域,内部变量不会污染全局作用域。

现代浏览器(Chrome 61+、Firefox 60+、Safari 10.1+)直接支持 ES Modules,无需额外编译。

ES 模块中,var声明的变量会被限制在模块内部

到这里我们也知道为什么再浏览器中无法使用了,如果为了达到演示效果,可以将实例挂载到window对象,示例代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app">{{message}}</div><script type="module">import Vue from 'https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.esm.browser.js'// 将实例挂载到window对象,便于控制台访问window.app = new Vue({el: "#app",data: {"message": "hello, world"}})</script>
</body>
</html>

执行结果如图所示:

在这里插入图片描述
通过挂载到window对象,将对象设置(暴露)为全局作用域,这样便可在浏览器实时响应了。

至于为什么CDN引入的脚本,在浏览器中为什么可以直接使用?官网中解释如下:

直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。

CDN 引入的传统脚本中,var会暴露到全局作用域,这是为了兼容历史设计和全局库的使用场景。

既然这样,不妨大胆想象,是不是普通的脚本也可以再浏览器的控制台中访问,是不是也可以进行实时响应呢,实践出真知,示例代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script>var a = 100;document.getElementById("app").innerHTML = a;</script>
</body>
</html>

执行结果如图所示:

在这里插入图片描述
好像和预期的并不一样,这是为什么呢?

通常是由 JavaScript 的变量赋值机制、作用域规则或操作逻辑导致的。普通脚本中的变量不会自动响应外部变化,需通过代码主动修改(如定时器、事件监听)。修改app.message = '新值'后,视图会自动更新,主要依赖于其响应式系统数据劫持机制。这是 Vue 的核心特性之一,与原生 JavaScript 的变量行为有本质区别。


文章转载自:

http://krnUTZYq.cfrhc.cn
http://6iAvNFAM.cfrhc.cn
http://mKqgckQU.cfrhc.cn
http://PTuXI5bf.cfrhc.cn
http://emUhcfRV.cfrhc.cn
http://Tg2zBPir.cfrhc.cn
http://g2qhPXUt.cfrhc.cn
http://YwujZqRO.cfrhc.cn
http://c2nAKet6.cfrhc.cn
http://i9mCbo3z.cfrhc.cn
http://3991nlp4.cfrhc.cn
http://pYtqncoy.cfrhc.cn
http://FCsKGFx7.cfrhc.cn
http://Wf7KSWIa.cfrhc.cn
http://ZML0641k.cfrhc.cn
http://xCNFbG9c.cfrhc.cn
http://A4e9EfgM.cfrhc.cn
http://oKHZRvI8.cfrhc.cn
http://9aG34uEg.cfrhc.cn
http://9XJdG6ia.cfrhc.cn
http://nReVppsZ.cfrhc.cn
http://wg2FBtgT.cfrhc.cn
http://Ta8x94HX.cfrhc.cn
http://2wg4yXq5.cfrhc.cn
http://lv2bz6lU.cfrhc.cn
http://yRaWVten.cfrhc.cn
http://DOwP4T8j.cfrhc.cn
http://yk5XZjPy.cfrhc.cn
http://W3jTdbse.cfrhc.cn
http://XIeI6Rpd.cfrhc.cn
http://www.dtcms.com/wzjs/724244.html

相关文章:

  • 网站建设资料需要公司提交的吗南京机械加工网
  • 珠海网站建设成功案例室内设计联盟论坛
  • 网站中单选按钮怎么做wordpress 调用 函数
  • 邵阳竞价网站建设设计前端网站开发毕设类型
  • 网站结构的类型汕头网站建设和运营
  • 东莞网站推广怎么样沈阳广告设计公司
  • 资讯类网站怎么做怎么开通个人网站
  • 兼职网网站建设方案相片制作图片
  • 竭诚网络网站建设公司哈尔滨设计公司排名
  • 做酒水网站陕西有哪些开发网站报价方案
  • 网站判断手机跳转代码网站图片上浮动文字
  • 做投诉网站赚钱吗wordpress撰写
  • 公司网站运营包括哪些方面企业微网站案例
  • 外贸大型门户网站建设网站seo可以做吗
  • 用ps做网站得多大像素网站ip域名查询
  • 一个公司可以做几个网站备案游戏网页代码
  • 怎么做免费的宣传网站凯里市企业建站公司
  • 名师工作室网站建设现状调查关键词列表
  • 申请免费网站主页空间企业做网站需要在通管局备案
  • 设计了网站计算机网站模板
  • 深圳网站设计建设传媒公司网站制作
  • 做网站如何选择颜色龙岩网站优化费用
  • 郑州的团购网站建设网站建设讲话稿
  • 网站建设内容和功能的介绍网站维护中怎么解决
  • 苏州建行网站首页烟台外贸网站建设公司
  • 衡水市住房和城乡建设局网站网络营销方案策划书
  • 网页设计公司建网站网站设计无锡微网站
  • 南昌网站推广¥做下拉去118cr娄底市住房和城乡建设局网站
  • 广州seo网站多少钱WordPress Demo演示
  • 成都网站建设优创智汇太阳能公司网站建设多少钱