vue2.0学习(四)-实例和内置组件

vue2.0学习(四)-实例和内置组件

1.实例入门-实例属性

一、Vue和Jquery.js一起使用

下载可以去官网进行下载,我这里使用的版本是3.1.1,下载好后在需要的页面引入就可以了。当然你还有很多其它的方法引入jquery,只要可以顺利引入就可以了。

<script type="text/javascript" src="../assets/js/jquery-3.1.1.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <script type="text/javascript" src="../assets/js/jquery-3.1.1.min.js"></script>
    <title>Early Examples Demo</title>
</head>
<body>
    <h1>Early Examples Demo</h1>
    <hr>
    <div id="app">
        {{message}}
    </div>

    <script type="text/javascript">
        var app=new Vue({
            el:‘#app‘,
            data:{
                message:‘hello Vue!‘
            },
            //在Vue中使用jQuery
            mounted:function(){
                $(‘#app‘).html(‘我是jQuery!‘);
            }
        })
    </script>
</body>
</html>

二、实例调用自定义方法

在Vue的构造器里写一个add方法,然后我们用实例的方法调用它

构造器里的add方法

methods:{
    add:function(){
        console.log("调用了add方法")
    }
}

实例调用:

app.add();

2.实例方法

一、$mount方法

$mount方法是用来挂载我们的扩展的.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>Examples Method Demo</title>
</head>
<body>
    <h1>Examples Method Demo</h1>
    <hr>
    <div id="app">
        {{message}}
    </div>

    <script type="text/javascript">
      var zidingyi = Vue.extend({
          template:`<p>{{message}}</p>`,
          data:function(){
              return {
                  message:‘Hello ,I am JSPang‘
              }
          }
      })
      var vm = new zidingyi().$mount("#app")
    </script>
</body>
</html>

二、$destroy() 卸载方法

用$destroy()进行卸载

html:

<p><button onclick="destroy()">卸载</button></p>

javascript代码

function destroy(){
   vm.$destroy();
}

三、$forceUpdate() 更新方法

vm.$forceUpdate()

四、$nextTick() 数据修改方法

当Vue构造器里的data值被修改完成后会调用这个方,也相当于一个钩子函数吧,和构造器里的updated生命周期很像.

function tick(){
    vm.message="update message info ";
    vm.$nextTick(function(){
        console.log(‘message更新完后我被调用了‘);
    })
}

3.实例事件

实例事件就是在构造器外部写一个调用构造器内部的方法。这样写的好处是可以通过这种写法在构造器外部调用构造器内部的数据。

写一个点击按钮,持续加1的例子.

一、$on 在构造器外部添加事件.

app.$on(‘reduce‘,function(){
    console.log(‘执行了reduce()‘);
    this.num--;
});

$on接收两个参数,第一个参数是调用时的事件名称,第二个参数是一个匿名方法.

如果按钮在作用域外部,可以利用$emit来执行.

//外部调用内部事件
function reduce(){
    app.$emit(‘reduce‘);
}

二、$once执行一次的事件

app.$once(‘reduceOnce‘,function(){
    console.log(‘只执行一次的方法‘);
    this.num--;

});

三、$off关闭事件

//关闭事件
function off(){
   app.$off(‘reduce‘);
}

4.内置组件 -slot讲解

slot是标签的内容扩张,也就是说你用slot就可以在自定义组件时传递给组件内容,组件接收内容并输出.

先来定义一个的组件,这个组件用来显示博主的一些信息。

我们在Vue 构造器里的data中给出了信息.

   data:{
        baiduData:{
            url:"https://www.baidu.com/",
            name:"百度",
            skil:"web前端"
        }
      },

我们用<template></template>标签的方式定义了组件:

<template id="tmp">
    <div>
        <p>百度地址</p>
        <p>网名:</p>
        <p>技术类型:</p>

    </div>
</template>

slot的使用需要两步:

1.在HTML的组件中用slot属性传递值.

 <baidu>
            <span slot="url">{{baiduData.url}}</span>
            <span slot="name">{{baiduData.url}}</span>
            <span slot="skil">{{baiduData.skil}}</span>
/baidu>

2.在组件模板中用<slot></slot>标签接收值.

<template id="tmp">
    <div>
        <p>百度地址:<slot name="url"></slot></p>
        <p>网名:<slot name="name"></slot></p>
        <p>技术类型:<slot name="skil"></slot></p>
    </div>
</template>

全部代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>example methods Demo</title>
    <script type="text/javascript" src="../assert/js/vue.js"></script>
    <script type="text/javascript" src="../assert/js/jquery-3.2.1.min.js"></script>
</head>
</head>
<body>
    <h1>example methods Demo</h1>
    <hr>
    <div id="app">
        <baidu>
            <span slot="url">{{baiduData.url}}</span>
            <span slot="name">{{baiduData.url}}</span>
            <span slot="skil">{{baiduData.skil}}</span>
        </baidu>
     </div>
  <template id="tmp">
    <div>
        <p>百度地址:<slot name="url"></slot></p>
        <p>网名:<slot name="name"></slot></p>
        <p>技术类型:<slot name="skil"></slot></p>
    </div>
  </template>
    <script>
        var baidu={
            template:"#tmp"
        }
  var app=new Vue({
      el:‘#app‘,
      data:{
        baiduData:{
            url:"https://www.baidu.com/",
            name:"百度",
            skil:"web前端"
        }
      },
   components:{
       "baidu":baidu
   }
  })

    </script>
</body>
</html>

原文地址:https://www.cnblogs.com/guyanv/p/8849566.html

时间: 2025-01-08 06:06:06

vue2.0学习(四)-实例和内置组件的相关文章

Vue.js 实例和内置组件 入门

首先来看看实例的概述: 实例就是在构造器外部操作操作构造器内部的属性和方法. 实例的作用就是给Vue提供与其它js及其框架结合使用的接口. 进入实例阶段: 首先来看 Vue.js 搭配 jQuery 使用: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Early Examples Demo</title&g

Vue基础(环境配置、内部指令、全局API、选项、内置组件)

1.环境配置 安装VsCode 安装包管理工具:直接下载 NodeJS 进行安装即可,NodeJS自带 Npm 包管理工具,下载地址:https://nodejs.org/en/download/安装完成后在命令行执行以下命令查看npm包管理器版本 npm -v npm中文文档:https://www.npmjs.cn/ 配置淘宝镜像 npm install cnpm -g --registry=https://registry.npm.taobao.org 然后执行 cnpm -v 查看版本信

vue2.0学习(二)-全局API

vue2.0学习(二)-全局API GitHub源码 https://github.com/sunnyguyan/VueDemo 1.Vue.directive自定义指令 一.什么是全局API? 全局API并不在构造器里,而是先声明全局变量或者直接在Vue上定义一些新功能,Vue内置了一些全局API,比如我们今天要学习的指令Vue.directive.说的简单些就是,在构造器外部用Vue提供给我们的API函数来定义新的功能 二.Vue.directive自定义指令 我们在第一季就学习了内部指令,

python基础篇【第四篇】内置函数、装饰器:

一.内置函数: 对于一些python中常用的函数,python自身就已经定义了一些函数用于调用,我们就叫它内置函数!如以下都是python中内置的函数! 一些常用的内置函数具体用法: 一些常用的内置函数具体用法: 1.abs():取绝对值 1 n=abs(-2) 2 print(n) 3 4 结果: 5 2 2.all();传入可迭代的对象中,都为真才为真; Fasle: 0,None,"",[],{} ,()都为假True: 1,-1,True,有值返回真. n=all([1,2,3

vue2.0学习(一)-内部指令

vue2.0学习(一)-内部指令 GitHub源码 https://github.com/sunnyguyan/VueDemo 1.v-if v-else v-show v-if:是vue的一个内部指令,指令用在我们的html中 v-if用来判断是否加载html的DOM,比如我们模拟一个用户登录状态,在用户登录后现实用户名称 <div v-if='isLogin'>你好,guyan</div> 完整的html代码 <!DOCTYPE html> <html lan

vue2.0学习(一)-的内部指令

vue2.0学习(一)-内部指令 GitHub源码 v-if v-else v-show v-if dq 原文地址:https://www.cnblogs.com/guyanv/p/8734904.html

Vue2.0笔记——Vue实例

Vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 当创建一个 Vue 实例时,你可以传入一个选项对象,就如前面所提到的如:data,methods,computed,watch等等.一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的.可复用的组件树组成.举个例子,一个 todo 应用的组件树可以是这样的: 根实例Root └─ TodoList ├─ TodoIte

通俗易懂了解Vue内置组件keep-alive内部原理

1. 官方介绍及其用法 1.1 组件介绍 要想搞明白<keep-alive>组件的内部实现原理,首先我们得搞明白这个组件怎么用以及为什么要用它,关于<keep-alive>组件,官网如下介绍: <keep-alive>是Vue中内置的一个抽象组件,它自身不会渲染一个 DOM 元素,也不会出现在父组件链中.当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们. 这句话的意思简单来说:就是我们可以把一些不常变动的组件或者需要缓存的组件用<keep-alive&g

vue 内置组件__slot讲解

slot 是vue的内置组件,主要分为传值和接收值两部分; 首先写一个自定义组件:例如 <js></js> 再写一个template模板 并在构造器中使用components:{} 挂载, 在构造器的data中写一个选项方法: data: { jsData: { url: 'http://www.baidu.com', netName: '百度', skill: 'seach' } }, 主要是传值与接收值部分: 在自定义组件中传值,通过(key,value)的方式 <js&