Vue实例对象

Vue实例对象是Vue.js的基础,通过new Vue()构造,常用参数包括el(指定挂载点)、template(定义模板)和data(管理数据)。data中的属性在实例中可直接访问,并用于模板渲染。Vue实例的生命周期包括多个阶段。组件方面,可以全局或局部注册,如全局注册组件`Vue.component(id, definition)`,局部注册则在Vue实例的components选项中定义。" 88399361,8094212,进程的组成与描述,"['操作系统', '进程管理']
  1. Vue实例对象
    Vue()是一个构造函数,用new Vue(构造参数)得到的就是一个实例对象,Vue实例对象是Vue.js中最基本的单元。构造参数是一个对象,构造参数的属性即为参数选项,常见的参数选项有el、data、template、components等。
    在项目中, 在main.js中通过创建最外层的Vue实例对象来实现根结点、根组件的功能。

参数选项:

el:即element,表示当前Vue实例对象的装载位置,装载在哪个元素上,也称为挂载点。装载的含义是将template中的内容替换挂载点元素所对应的全部HTML代码。
template:表示装载的内容,HTML代码、包含其他组件的HTML片段,称为模板。
data:数据,是一个对象,表示该实例对象会用到的数据,其中的属性和属性值(字段)会被代理到当前实例对象。比如data中有一个属性为fruit,属性值为banana,那么可以在实例对象中直接用属性访问符号(·)来访问。也可以直接在template对应的HTML片段中引用相应字段,比如用{{变量名}}来实现数据渲染。例:
var my = new Vue({
el:"#app",
template: “

{{fruit}}}
”,
data:{
fruit:“banana”
}
});
my.fruit;//“banana”
1.1 完整测试代码

新建index.html文件,其中采用

index.html 渲染出来的页面可以发现整个div#app被替换成了template中的HTML片段

也可以用class属性来获取挂载点,即el属性为.outerDiv,渲染结果与采用id来获取挂载点,即el属性为#app时的渲染结果相同。

    var my = new Vue({
        el:".outerDiv",
        template: "<p>{{fruit}}</p>",
        data:{
            fruit:"banana"
        }
    });

1.2 Vue实例对象的生存周期

https://cn.vuejs.org/v2/guide/instance.html#生命周期图示

2.Vue组件
2.1 测试代码

  本节使用vue-cli生成一个项目Demo4,主要在main.js、index.html中操作>。首先清空main.js代码,接下来一步步写入代码。本项目已经安装了插件(cnpm install),因此启动时直接cnpm run dev(开发环境)即可。

import Vue from “vue” ES6语法,引入vue这个库并赋值给Vue这个变量,类似于require(),这样Vue就引入到main.js的全局中。

----------index.html----------------

demo4
------------main.js--------------

import Vue from ‘vue’

new Vue({
el:"#app",
template:“

hello world{{word}}

”,
data:{
word:" nihao"
}
});
2.2 组件的注册和引入

(1)组件树

(2)组件的注册和引入

(2.1)全局注册:Vue.component(id,definition)

   全局注册的组件为全局组件。

    这里的id为组件名,也就是在index.html中使用标签所引用的名字,definition相当于new Vue(构造参数),只不过可以省略new Vue(),直接将构造参数填入即可,子组件一般就不需要挂载点el了,但是一般需要template、data。

    参数选项data有两种方式,一种是data:{},另一种是data:function(){return {};},后者不会出现单一引用问题(比如index.html中引入了多个<my-header>标签,那么这些标签所引用的data中的数据不会共享,不会发生影响彼此的情况),建议采用后者。

---------main.js------------

import Vue from ‘vue’

Vue.component(“my-header”,{
template:"

{{word}} This is my header

",
data:function () {
return {
word:“hello word”
}
}
});

new Vue({
el:"#app"
});
----------index.html------------(仅显示body)

结果

(2.2)局部注册

      每个组件都是一个Vue实例对象,其中都有components参数选项,可以使用这个参数选项对当前实例对象(组件)注册其子组件。子组件又可以注册其子组件,进而形成了组件树。这里components是一个对象,其中的字段值我们一般抽象出来一个变量,比如myHeader和myHeaderChild,这些变量的值其实就是子组件(实例对象),只不过我们可以省略new Vue(),直接使用构造参数来表示。

------------main.js--------------

import Vue from ‘vue’

let myHeaderChild = {
template:"

{{fruit}}

“,
data:function () {
return {
fruit:“Apple”
}
}
};
let myHeader = {
template:”

{{word}} This is my header

",
data:function () {
return {
word:“hello word”
}
},
components: {
“my-header-child”:myHeaderChild
}
};

new Vue({
el:"#app",
components:{
“my-header”:myHeader
}
});
-------------index.html--------------

结果
Vue 实例对象的创建是通过 `new Vue()` 来实现的,它是构建 Vue 应用的核心基础。在创建实例时,开发者需要传入一个选项对象,该对象包含多个配置项以定义实例的行为和数据。 ### 创建 Vue 实例 创建 Vue 实例的基本语法如下: ```javascript var vm = new Vue({ // 选项对象 }); ``` 其中,选项对象可以包含多种属性来配置实例,例如 `el`、`data`、`methods`、`computed` 等。 #### 挂载点 (`el`) `el` 属性用于指定 Vue 实例所要挂载的 DOM 元素。它接受一个 CSS 选择器字符串或实际的 DOM 元素作为值。当 Vue 实例被创建后,它会接管这个元素,并将其作为应用的根节点。 ```javascript let vm = new Vue({ el: "#app", data: { name: 'beiyu' } }); ``` 在这个例子中,`#app` 是一个 HTML 元素的 ID,表示 Vue 实例将在此元素上进行渲染[^3]。 #### 数据对象 (`data`) `data` 属性是一个对象,其中包含了所有你想要在视图中使用的响应式数据。这些数据一旦发生变化,视图也会相应更新。`data` 中的数据可以通过 `this` 关键字在 Vue 实例的方法中访问。 ```javascript let vm = new Vue({ el: "#app", data: { message: "Hello Vue!", flag: 0, date: new Date() } }); ``` 上述代码展示了如何定义 `data` 对象中的属性,如 `message`、`flag` 和 `date`。这些属性都是响应式的,并且可以在模板或其他 Vue 特性(比如计算属性、方法)中使用[^2]。 #### 方法 (`methods`) `methods` 属性允许你在 Vue 实例中定义方法,这些方法通常用来处理用户的交互操作,比如点击按钮等。这些方法可以直接在模板中通过指令调用。 ```javascript let vm = new Vue({ el: "#app", methods: { incrementCounter: function () { this.counter++; } }, data: { counter: 0 } }); ``` 这里定义了一个名为 `incrementCounter` 的方法,它会在被调用时增加 `counter` 的值,而 `counter` 是在 `data` 中定义的一个属性[^1]。 #### 计算属性 (`computed`) 计算属性提供了更复杂的数据逻辑处理能力。与 `methods` 不同的是,计算属性基于它们的依赖进行缓存。只有当它的依赖发生改变时才会重新求值。 ```javascript let vm = new Vue({ el: "#app", data: { firstName: 'John', lastName: 'Doe' }, computed: { fullName: function () { return this.firstName + ' ' + this.lastName; } } }); ``` 在这个示例中,`fullName` 是一个计算属性,它返回由 `firstName` 和 `lastName` 组合而成的名字。如果这两个属性中的任何一个发生变化,`fullName` 将会自动更新[^4]。 #### 监听属性 (`watch`) 监听属性允许我们执行异步操作或者当数据变化时做一些复杂的处理。它可以监听数据的变化并作出反应。 ```javascript let vm = new Vue({ el: "#app", data: { flag: 0, date: new Date() }, watch: { flag: function (newVal, oldVal) { alert("新值:" + newVal + " 旧值:" + oldVal); } } }); ``` 此段代码演示了如何设置一个监听器来监视 `flag` 的变化,并在变化时弹出提示框显示新的和旧的值[^4]。 #### 生命周期钩子函数 生命周期钩子函数是一系列在 Vue 实例不同阶段自动调用的函数。最常用的有 `created` 和 `mounted` 等。 ```javascript let vm = new Vue({ el: "#app", data: { message: "Hello Vue!" }, created: function () { console.log('实例已创建'); }, mounted: function () { console.log('实例已挂载'); } }); ``` `created` 钩子会在实例创建完成后立即调用,此时数据观测 (data observer) 和事件/侦听器的配置已经完成;而 `mounted` 则是在实例被挂载到 DOM 上之后调用[^5]。 以上就是关于 Vue 实例对象创建方法及使用的详解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值