技术标签: 前端 vue.js vue2 javascript
Vue.extend 属于 Vue 的全局 API,在实际业务开发中我们很少使用,因为相比常用的 Vue.component 写法使用 extend 步骤要更加繁琐一些。但是在一些独立组件开发场景中,Vue.extend + $mount 这对组合是我们需要去关注的。
1. 应用场景
在 vue 项目中,初始化的根实例后,所有页面基本上都是通过 router 来管理,组件也是通过 import 来进行局部注册,所以组件的创建不需要去关注,相比 extend 要更省心一点点。但是这样做会有几个缺点:
2.1 基础用法
Vue.extend( options )
参数:{Object} options
用法:使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象;
data 选项是特例,需要注意: 在 Vue.extend() 中它必须是函数;
<div id="mount-point"></div>
// 创建构造器
var Profile = Vue.extend({
template: '<p>{
{firstName}} {
{lastName}} aka {
{alias}}</p>',
data: function () {
return {
firstName: 'Walter',
lastName: 'White',
alias: 'Heisenberg'
}
}
})
// 创建 Profile 实例,并挂载到一个元素上。
new Profile().$mount('#mount-point')
// 结果如下:
<p>Walter White aka Heisenberg</p>
可以看到,extend 创建的是 Vue 构造器,而不是我们平时常写的组件实例,所以不可以通过 new Vue({ components: testExtend }) 来直接使用,需要通过 new Profile().$mount(’#mount-point’) 来挂载到指定的元素上。
2.2 第二种写法
可以在创建实例的时候传入一个元素,生成的组件将会挂载到这个元素上,跟 $mount 差不多。
// 1. 定义一个vue模版
let tem ={
template:'{
{firstName}} {
{lastName}} aka {
{alias}}',
data:function(){
return{
firstName:'Walter',
lastName:'White',
alias:'Heisenberg'
}
}
// 2. 调用
const TemConstructor = Vue.extend(tem)
const intance = new TemConstructor({el:"#app"}) // 生成一个实例,并且挂载在 #app 上
文章浏览阅读310次。由于现代网络和浏览器的发展,网页的内容也变得很复杂,ajax 诞生让用户可以在不刷新页面的条件下获取到数据。但是 新的数据的渲染需要操作dom,这个是比较耗性能的。所以人们想出来, 将dom转化成js也称为vdom,通过跑js程序,对比出来新vdom 和 老vodm,拿到需要更新变化的vdom,这样就可以通过dom操作,需要变化的内用。简单来说,不再因为一部分的改动就把整体的dom重新渲染,通过筛选出来变动的内容,只渲染变动的内容。核心思想:使用 js对象的形式来表现html的dom结构。
文章浏览阅读4.5k次,点赞5次,收藏6次。1.刚开始我输入的指令是这样的wget https://pjreddie.com/media/files/yolov3-tiny.weights2.发现报错 ERROR: cannot verify pjreddie.com's certificate, issued by `/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3':..._wget报错
文章浏览阅读755次。i have a file that have some non-utf8 caracters (like "ISO-8859-1"), and so i want to convert that file (or read) to UTF8 encoding, how i can do it?The code it's like this:File file = new File("some_f..._new file怎么转化utf8
文章浏览阅读5.6k次。利用 CSS3 @font-face 规则指定名为"myFirstFont"的字体,并指定在哪里可以找到它的URL:@font-face{font-family: myFirstFont;src: url('Sansation_Light.ttf'), url('Sansation_Light.eot'); /* IE9 */}在main.js中全局引用文件import '@/styles/index.scss'解决字体文件过大问题Fontmin - 字体子集化方案_vue 引入字体包体积过大
文章浏览阅读551次。一、用HLS生成一个定制IP(加速器)(1)首先打开vivado hls,本人的版本是2017.2,点击创建一个新工程。(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。 (3)在左侧的..._定制pynq的overlay
文章浏览阅读2w次,点赞28次,收藏76次。初学roketMQ的同学可能会比较难以理解这四者之间的关系,这里我来理一下。1、消费者和消费者属于个体与群体的关系,非常容易理解,不赘述2、Topic是相当于一种消息类型,而队列queue则是属于某个Topic下的更细分的一种单元。举个例子。Topic代表老虎,是一种动物类型,而队列就相当于东北虎,是对老虎的更详细描述。3、在同一个消费者组下的消费者,不能同时消费同一个queue。4、一个消费者组下的消费者,可以同时消费同一个Topic下的不同队列的消息。5、不同消费者组下的消费者,可以同时._rocketmq topic和queue关系
文章浏览阅读389次,点赞2次,收藏2次。本章主要介绍了系统在开发过程中所应用到的一些关键的技术,主要包括核心的Python编程语言、Django框架;MySQL数据库;以及常规的网页技术HTML/CSS/JAVASCRIPT的介绍。开发操作系统:windows10 + 4G内存 + 500G硬盘开发环境:Python3.8开发语言:Python开发框架:Django开发工具:pycharm数据库:mysql8数据库管理工具:navicat其他开发语言:html + css +javascript。_基于pythondjango的开题报告
文章浏览阅读4.4k次,点赞14次,收藏66次。相信很多人都遇见过这种情况:实验室成员使用同一台服务器,每个人拥有自己的独立账号,我们可以使用服务器更好的配置完成实验,毕竟自己哪有money拥有自己的3090呢。_可以将本地的环境在远程服务器使用吗
文章浏览阅读1k次。Electron是一个跨平台的桌面应用开发框架,用html css js的技术开发桌面上面可以安装的软件。下面我们看看通过electron-forge创建一个electron项目。想看视频的同学访问:https://pan.baidu.com/s/1Dol4tP6Jop6MXro0ULVapQ地址失效访问:https://www.itying.com/goods..._electron-forge icon
文章浏览阅读1.7k次。一个专注PR剪辑视频的PR模板网站(PRmuban.com)提供PR模板,PR素材,PR转场特效,PR调色LUT预设,PR剪辑教程,PR模板网站,Pr字幕模板,pr片头模板,视频模板,视频素材,剪辑素材,抖音素材,免费下载,Premiere软件资源库,mogrt,pr插件免费下载网站官网直达:https://prmuban.com/...
文章浏览阅读4.3k次,点赞5次,收藏10次。setting中配置: "latex-workshop.latex.autoClean.run": "onBuilt", //注意结尾是 t 不是 d "latex-workshop.latex.clean.fileTypes": [ "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof"..._latex aux会自动删除
文章浏览阅读113次。2019独角兽企业重金招聘Python工程师标准>>> ..._spring boot+spring data jpa+spring security+freemarker+vue+jquery