Vue的Options用法说明


Posted in Javascript onAugust 14, 2020

el:挂载点

与$mount有替换关系

new Vue({
 el: "#app"
});

new Vue({}).$mount('#app')

注:被你选为挂载点的那个元素,如果在index.html里那个元素里面本来就有内容,在渲染时会消失(网速慢可以看到),被这个vue实例的对应内容所覆盖。

data:内部数据

支持对象和函数,优先用函数

new Vue({
 //优先使用函数
 data() {
  return {
   n: 0,
  }
 }
}).$mount("#app");

注:能写函数尽量写函数,否则有可能有BUG;

methods:方法

事件处理函数

new Vue({
   data (){
    return{
      n:0
    }
   },
  template:`
    <div class="red">
      {{n}}
      <button @click="add">+1</button>
    </div>
  `,
 //add必须写到methods里面
  methods:{
     add(){
       this.n+=1
     }
  }
}).$mount('#app')

普通函数:methods代替filter

import Vue from "vue";
Vue.config.productionTip = false;

new Vue({
 data() {
  return {
   n: 0,
   array: [1, 2, 3, 4, 5, 6, 7, 8]
  };
 },
 template: `
 <div class=red>
 {{n}}
 <button @click="add">+1</button> //事件处理函数
 <hr>
 {{filter()}}  //普通函数(JS的filter直接在视图里调用,每一次更新渲染都会调用一次)
 </div>
 `,//主动在模板里面调用
 methods: {
  add() {
   this.n += 1; //事件处理函数
  },
  filter() {
   return this.array.filter(i => i % 2 === 0); //普通函数
  }
 }
}).$mount("#app");

components:方法

使用Vue组件,注意大小写

(建议用法) 模块化:

新建一个vue文件Demo.vue,这个vue文件就是一个组件

在main.js中引入这个vue文件

在vue实例的components中声明这是我要用的组件,并且命名为Demo

这样在这个Vue实例的template中就可以直接使用这个组件<Demo/>

import Vue from "vue";
import Demo from "./Demo.vue"; //引入这个vue文件  ---文件名最好小写 组件名最好大写
Vue.config.productionTip = false;

new Vue({
 components: {
  Demo //在vue实例的components中声明这是我要用的组件,并且命名为Demo
  //如果组件名就叫Demo,即Demo:Demo,那就写Demo --ES6缩写
  //components: {Demo},
 },
 data() {
  return {
   n: 0
  };
 },
 template: `
 <div class=red>
 {{n}}
 <button @click="add">+1</button>
 <Demo/>  //这样在这个Vue实例的template中就可以直接使用这个组件`<Demo/>`
 </div>
 `,
 methods: {
  add() {
   this.n += 1;
  },
 }
}).$mount("#app");

四个钩子

created -- 实例出现在内存中后触发
created(){
     debugger
     console.log('这玩意出现在内存中')
  },

mounted-- 实例出现在页面中(挂载了)后触发

mounted(){
  debugger
     console.log('这玩意儿已出现在页面中')
  },

updated -- 实例更新了后触发

updated(){
     console.log('更新了')
    console.log(this.n) 
  },
 //当你+1的时候,能证明他在更新的时候触发,还可以拿到最新的n

destroyed -- 实例从页面和内存中消亡了后触发

props:外部属性

外部来传值

message="n"传入字符串

:message="n"传入vue实例的this.n数据

:fn="add"传入vue实例的this.add函数

示例

补充知识:vue $options初始化

vue实例化时,对$options进行初始化

vue/src/core/instance/init.js

Vue.prototype._init = function (options?: Object) {
  const vm: Component = this
  // a uid
  vm._uid = uid++

  let startTag, endTag
  /* istanbul ignore if */
  if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
   startTag = `vue-perf-start:${vm._uid}`
   endTag = `vue-perf-end:${vm._uid}`
   mark(startTag)
  }

  // a flag to avoid this being observed
  vm._isVue = true
  // merge options
  if (options && options._isComponent) {
   // optimize internal component instantiation
   // since dynamic options merging is pretty slow, and none of the
   // internal component options needs special treatment.
   initInternalComponent(vm, options)
  } else {
  //初始化$options
   vm.$options = mergeOptions(
    resolveConstructorOptions(vm.constructor),
    options || {},
    vm
   )
  }
  /* istanbul ignore else */
  if (process.env.NODE_ENV !== 'production') {
   initProxy(vm)
  } else {
   vm._renderProxy = vm
  }
 }
}

以上这篇Vue的Options用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
Apr 27 Javascript
js 获取radio按钮值的实例
Aug 17 Javascript
判断javascript的数据类型(示例代码)
Dec 11 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 Javascript
JavaScript Split()方法
Dec 18 Javascript
JavaScript操作class和style样式代码详解
Feb 13 Javascript
JavaScript 随机验证码的生成实例代码
Sep 22 Javascript
vue的props实现子组件随父组件一起变化
Oct 27 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
JavaScript装饰者模式原理与用法实例详解
Mar 09 Javascript
Vue 构造选项 - 进阶使用说明
Aug 14 #Javascript
vue 扩展现有组件的操作
Aug 14 #Javascript
如何HttpServletRequest文件对象并储存
Aug 14 #Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
Aug 14 #Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
Aug 14 #Javascript
vue在App.vue文件中监听路由变化刷新页面操作
Aug 14 #Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
Aug 14 #Javascript
You might like
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
详解Vue源码中一些util函数
2019/04/24 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
vue组件开发之slider组件使用详解
2020/08/21 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python处理Excel xlrd的简单使用
2017/09/12 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
python画图的函数用法以及技巧
2019/06/28 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
DTD的含义以及作用
2014/01/26 面试题
公司合作意向书范文
2014/07/30 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
升职自荐信范文
2015/03/27 职场文书
投诉书格式范本
2015/07/02 职场文书
教师旷工检讨书
2015/08/15 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript
Pandas搭配lambda组合使用详解
2022/01/22 Python