news 2026/2/12 14:06:20

JavaScript中编写new Vue()实例的完整教程(Vue 2.x)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript中编写new Vue()实例的完整教程(Vue 2.x)

一、环境搭建

  1. 引入Vue库

    通过CDN或本地文件引入Vue 2.x:

    <!-- 开发版本(包含警告) --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <!-- 生产版本(优化后) --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>

二、创建Vue实例
1. 基础实例化
// 创建Vue实例并挂载到DOM元素 const vm = new Vue({ el: '#app', // 挂载点(CSS选择器) data: { message: 'Hello Vue!', count: 0 }, methods: { increment() { this.count++; } } });
  • el:指定挂载的DOM元素(如<div id="app"></div>)。

  • data:响应式数据对象,需在实例创建前定义。

  • methods:定义组件方法,通过this访问数据和方法。


三、数据绑定与模板
1. 插值表达式
<div id="app"> <p>{{ message }}</p> <!-- 显示data.message --> <p>计数:{{ count }}</p> </div>
2. 双向绑定(v-model)
<div id="app"> <input v-model="message" placeholder="输入内容"> <p>输入内容:{{ message }}</p> </div>
  • v-model:实现表单元素与数据的双向绑定。


四、生命周期钩子

Vue实例的生命周期钩子允许在特定阶段执行代码:

new Vue({ el: '#app', data: { message: 'Hello' }, beforeCreate() { console.log('实例初始化前'); // 无法访问data/methods }, created() { console.log('实例创建完成'); // 可访问data,但未挂载DOM }, mounted() { console.log('DOM已挂载'); // 可操作DOM }, beforeDestroy() { console.log('实例销毁前'); // 清理定时器/事件监听 } });
  • 常用钩子created(数据初始化)、mounted(DOM操作)、updated(数据更新后)。


五、组件化开发
1. 全局组件注册
// 定义组件 Vue.component('my-component', { template: '<div>这是一个组件</div>' }); // 使用组件 new Vue({ el: '#app', template: '<my-component></my-component>' });
2. 局部组件注册
const MyComponent = { template: '<div>局部组件</div>' }; new Vue({ el: '#app', components: { 'my-component': MyComponent }, template: '<my-component></my-component>' });

六、进阶用法
1. 计算属性(Computed)
new Vue({ data: { firstName: '张', lastName: '三' }, computed: { fullName() { return this.firstName + this.lastName; } } });
  • 特点:缓存计算结果,依赖数据变化时自动更新。

2. 监听器(Watch)
new Vue({ data: { searchQuery: '' }, watch: { searchQuery(newVal) { console.log('搜索词变化:', newVal); } } });
  • 用途:监听数据变化并执行异步操作(如API调用)。


七、完整示例
<!DOCTYPE html> <html> <head> <title>Vue实例教程</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <div id="app"> <h1>{{ message }}</h1> <input v-model="message"> <button @click="increment">点击次数:{{ count }}</button> </div> <script> new Vue({ el: '#app', data: { message: '欢迎使用Vue!', count: 0 }, methods: { increment() { this.count++; } }, mounted() { console.log('DOM已挂载,开始交互'); } }); </script> </body> </html>

八、调试与优化
  • Vue Devtools:浏览器插件,实时查看组件状态和数据流。

  • vm.$refs:访问子组件或DOM元素:

    // 在模板中添加ref <div ref="myDiv"></div> // 在JS中访问 this.$refs.myDiv.style.color = 'red';

九、Vue 3差异提示
  • 响应式系统:Vue 3使用Proxy替代Object.defineProperty,支持深层监听。

  • Composition API:推荐使用setup()函数替代new Vue()语法(需配合vue@3)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/10 18:06:07

为什么很多普通人会出现意义真空?

“意义真空”不是个人缺陷&#xff0c;而是现代性浪潮下&#xff0c;普通人被卷入的集体性精神处境。 一、社会结构维度&#xff1a;意义生产系统的崩塌与异化 传统意义容器的瓦解 过去&#xff1a;宗教、宗族、稳固的乡土社会提供现成意义模板&#xff08;如“光宗耀祖”“侍奉…

作者头像 李华
网站建设 2026/2/8 9:47:21

DeepSeek-R1-Distill-Qwen-1.5B快速上手:Gradio Web服务搭建实战

DeepSeek-R1-Distill-Qwen-1.5B快速上手&#xff1a;Gradio Web服务搭建实战 你是不是也遇到过这样的问题&#xff1a;手头有个不错的推理模型&#xff0c;但不知道怎么快速搭个界面让人用&#xff1f;今天我们就来解决这个问题。本文带你从零开始&#xff0c;把 DeepSeek-R1-…

作者头像 李华
网站建设 2026/2/5 6:05:29

必备工具推荐:NewBie-image-Exp0.1镜像快速部署入门必看

必备工具推荐&#xff1a;NewBie-image-Exp0.1镜像快速部署入门必看 1. 新手也能上手的动漫生成利器 你是不是也曾经被那些精美的二次元插画吸引&#xff0c;却苦于不会画画、调参复杂、环境配置麻烦而望而却步&#xff1f;今天要介绍的 NewBie-image-Exp0.1 镜像&#xff0c…

作者头像 李华
网站建设 2026/2/5 8:17:42

Qwen All-in-One入门必看:五大核心亮点深度解读

Qwen All-in-One入门必看&#xff1a;五大核心亮点深度解读 1. 什么是Qwen All-in-One&#xff1f;一句话说清它能干什么 你有没有遇到过这样的情况&#xff1a;想做个简单的情感分析&#xff0c;结果得装BERT、下载词典、配环境&#xff1b;想加个对话功能&#xff0c;又得额…

作者头像 李华
网站建设 2026/2/8 5:30:35

springboot_ssm889学生健康体检档案评估系统_ju8pu

目录具体实现截图系统概述核心功能技术亮点应用价值系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 系统概述 SpringBoot_SSM889学生健康体检档案评估系统是一个基于SpringBoot和SSM&#xff08…

作者头像 李华
网站建设 2026/2/10 2:49:34

springboot_ssm892的校社联社团管理系统论文

目录具体实现截图摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 摘要 随着高校社团活动的日益丰富&#xff0c;传统的手工管理方式已难以满足社团高效运作的需求。基于SpringBoot和SSM框架…

作者头像 李华