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

首先来看看实例的概述:

  • 实例就是在构造器外部操作操作构造器内部的属性和方法。
  • 实例的作用就是给Vue提供与其它js及其框架结合使用的接口。

进入实例阶段:

首先来看 Vue.js 搭配 jQuery 使用:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Early Examples Demo</title>
</head>
<body>
   <h4>Early Examples Demo</h4>
   <hr>
   <div id="app">
      {{message}}
   </div>
   <script src="https://unpkg.com/vue"></script>
   <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
   <script type="text/javascript">
      var app=new Vue({
         el:‘#app‘,
         data:{
            message:‘hello Vue!‘
         },
         //在Vue中使用jQuery
         mounted:function(){
            $(‘#app‘).html(‘jQuery操作DOM!‘);
         }
      })
   </script>
</body>
</html>

页面输出:jQuery操作DOM!,改变了 message 的输出。

$mount方法是用来挂载我们的扩展的。将扩展挂载到DOM上。

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap-grid.css" />
   <title>Early Examples Demo</title>
</head>
<body>
    <div class="container">
       <h4>Early Examples Demo</h4>
       <hr>
       <div id="app">
          {{message}}
       </div>
    </div>
   <script src="https://unpkg.com/vue"></script>
   <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
   <script type="text/javascript">
      var momei = Vue.extend({
          template: `<p>{{message}}</p>`,
          data: function() {
              return {
                  message: ‘Hello Vue.extend!‘
              }
          }
      });
      var vm = new momei().$mount(‘#app‘);
   </script>
</body>
</html>

实例在构造器外部的方法调用构造器内部的数据。

$on 构造器外部添加事件。

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap-grid.css" />
   <title>Examples Demo3</title>
</head>
<body>
    <div class="container">

       <h4>Examples Demo3</h4>
       <hr>
       <div id="app">
          {{num}}
          <p><button @click=‘add‘>Add</button></p>
       </div>

       <p><button onclick=‘reduce()‘>Reduce</button></p>
       <p><button onclick=‘reduceOnce()‘>reduceOnce</button></p>
       <p><button onclick=‘off()‘>Off</button></p>

    </div>
   <script src="https://unpkg.com/vue"></script>
   <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
   <script type="text/javascript">
      var app = new Vue({
          el: ‘#app‘,
          data: {
              num: 1
          },
          methods: {
              add: function() {
                  this.num ++;
              }
          }
      });
      // $on 实例事件 写入
      app.$on("reduce",function() {
          console.log(‘执行了reduce 多次执行方法!‘);
          this.num --;
      })
      // $once 实例事件 写入
      app.$once("reduceOnce",function() {
          console.log(‘执行了reduceOnce  执行一次方法!‘);
          this.num --;
      })
      //$emit() 调用
      function reduce() {
          app.$emit(‘reduce‘);
      }
      //$emit() 调用
      function reduceOnce() {
          app.$emit(‘reduceOnce‘);
      }
      //$off关闭事件
      function off() {
          app.$off(‘reduce‘);
      }
   </script>
</body>
</html>

slot功能让组件接收传递过来的值,并在模板中接收显示。通过代码实例认识一下:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap-grid.css" />
   <title>Examples Demo4</title>
</head>
<body>
    <div class="container">

       <h4>Examples Demo4</h4>
       <hr>
       <div id="app">
           <!-- slot 传递参数 -->
          <momei>
               <span slot="bolgUrl">{{momeiData.bolgUrl}}</span>
                <span slot="netName">{{momeiData.netName}}</span>
                <span slot="skill">{{momeiData.skill}}</span>
          </momei>
       </div>
        <!-- slot 接收参数 -->
        <template id="tmp">
           <div>
              <p>博客地址:<slot name="bolgUrl"></slot></p>
              <p>网名:<slot name="netName"></slot></p>
              <p>技术类型:<slot name="skill"></slot></p>
           </div>
        </template>

    </div>
   <script src="https://unpkg.com/vue"></script>
   <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
   <script type="text/javascript">
      var momei={      //定义组件
         template:‘#tmp‘
      }

      var app=new Vue({
         el:‘#app‘,
         data:{
            momeiData:{
               bolgUrl:‘http://www.cnblogs.com/momei/‘,
               netName:‘墨眉‘,
               skill:‘Web前端‘
            }
         },
         components:{   //挂载组件
            "momei":momei
         }
      })
   </script>
</body>
</html>

页面代码如何呈现,对页面及功能实现都很重要,这里更多的是体现没一个方法的使用。

在实践和学习中总结,完善自己对Vue.js更深层次的认识。

时间: 2024-10-28 00:41:59

Vue.js 实例和内置组件 入门的相关文章

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

vue.js实战学习——内置指令(一)

注:此内容摘抄自:梁灏的<Vue.js实战> 注:记得要引入vue.js才能运行哦,文章中贴出的代码直接复制是不行的,html css js 都放在了一起,而且也没有引用vue.js.   1.v-cloak v-cloak不需要表达式,它会在Vue实例结束编译时从绑定的HTML元素上移除,经常和CSS的display:none: 配合使用. <div class="app1" v-cloak> {{message}} </div> var app1

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 查看版本信

通俗易懂了解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&

JS中的内置对象简介与简单的属性方法

JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一数组可以储存多种不同的数据类型(但,同一数组一般只用于存放同种数据类型) 例如var arr1 = [1,"2",true,{"name":"啦啦啦"},[1,2]]; ②通过new关键字声明:var arr2 = new Array(参数); &g

基于vue.js的图片预览组件2.0.1

基于vue.js的图片预览组件 Github github 安装 npm install enlargeimg --save-dev import enlargeimg from 'enlargeimg'; 基础用法 <enlargeImg :data="files"></enlargeImg> export default { name: 'hello', data () { return { msg: 'Welcome to Your Vue.js App'

JavaScript入门之JS中的内置对象

一.数组 1.数组的基本概念 数组是在内存空间中连续存储的一组有序数据的集合.元素在数组中的顺序,称为下标.可以使用下标访问数组的每个元素. 2.如何声明一个数组 ①使用字面量声明:var arr = [];在JS中,同一数组可以存储各种数据类型: eg: var arr = [1,"wuhao",true,{},null,func] ②使用new关键字声明:var arr = new Array(参数): >>>参数可以是: a.参数省略,表示创建一个空数组 b.参

vue.js基础知识篇(6):组件详解

第11章:组件详解 组件是Vue.js最推崇也最强大的功能之一,核心目标是可重用性. 我们把组件代码按照template.style.script的拆分方式,放置到对应的.vue文件中. 1.注册 Vue.js的组件注册分为全局注册和局部注册. 全局注册使用Vue.component方法.第一个参数是组件名字,第二个参数是组件的构造函数,要么是function,要么是object. <!DOCTYPE html> <html lang="en"> <hea