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 相关文章推荐
Extjs学习笔记之七 布局
Jan 08 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
轻量级的原生js日历插件calendar.js使用指南
Apr 28 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
微信小程序App生命周期详解
Jan 31 Javascript
新手简单了解vue
May 29 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 Javascript
javascript 设计模式之组合模式原理与应用详解
Apr 08 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网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
一套Java笔试题
2016/08/20 面试题
文员个人的求职信范文
2013/09/26 职场文书
自荐信模版
2013/10/24 职场文书
打架检讨书100字
2014/01/19 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
教师读书活动总结
2014/05/07 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
学校运动会报道稿
2014/09/23 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
2014年工程部工作总结
2014/11/25 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
学习党章心得体会2016
2016/01/15 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js