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 相关文章推荐
固定背景实现的背景滚动特效示例分享
May 19 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
jquery css 设置table的奇偶行背景色示例
Jun 03 Javascript
jquery中filter方法用法实例分析
Feb 06 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
Jun 19 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
Jun 08 Javascript
使用nvm和nrm优化node.js工作流的方法
Jan 17 Javascript
JavaScript常用事件介绍
Jan 21 Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
php中使用redis队列操作实例代码
2013/02/07 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
北大青鸟学生求职信
2013/09/24 职场文书
大学生入党自我鉴定
2013/10/31 职场文书
资料员岗位职责
2013/11/17 职场文书
关于打架的检讨书
2014/01/17 职场文书
秋游活动策划方案
2014/02/16 职场文书
机修工工作职责
2014/02/21 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
党员检讨书
2014/10/13 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书