前端之:Vue学习记录(持续更新)

(1)子组件用props接收父组件传过来的参数,type:[ Array, String ] 可以指定多种接收类型
(2)子组件里用this.$attrs接收没有被props显式接收的“父组件传递给子组件”的属性
(3)子组件用this.$listeners接收父组件传递给子组件的方法
(4)用jsx渲染(template则无法被渲染),可以用this.$childrens得到render的return中渲染的所有标签,进一步用__props获得其属性
(5)中,dynamitComponent可以用如下方式定义:

getAsyncComponent(delay, timeout) {
     
     		 const asyncComponent = resolve => ({
     
      		  // 需要加载的组件 (应该是一个 `Promise` 对象)
     		   component: this.getTaskDetailComponent(this.currentTaskId),
     		   // 异步组件加载时使用的组件
     		   loading: LoadingComponent,
     		   // 加载失败时使用的组件
    		    error: ErrorComponent,
     		   // 展示加载时组件的延时时间。默认值是 200 (毫秒)
    		    delay,
     		   // 如果提供了超时时间且组件加载也超时了,
     		   // 则使用加载失败时使用的组件。默认值是:`Infinity`
    		    timeout,
    		  });
     		 return asyncComponent;
}

其中“component”对应需要正常加载的组件,“loading”对应加载中显示的组件,“error”对应加载失败显示的组件
(6)Object.prototype.hasOwnProperty.call(value, someAttrs)可以验证value对象是否存在someAttrs属性
(7)在不用路由跳转的情况下切换需要显示的组件,可以在一个页面中同时放入两个(或多个)需要动态切换的组件,并且绑定v-show属性
(8)

通过绑定showClass的值动态选择显示与不显示样式

(9)记录一下table的scopeSlots!如下:
(10)在el-table的tableColumn里可以传

{
     
	label:'操作',
	property : 'operation',
	scopeSlots: {
     
		default: scope => {
     
			scope.row...
			return<div><el-button /></div>}
	}
}

其中scope.row可以取到当前列所在行的信息(即table中对应的数据),并且用return函数渲染其他组件,非单单的文字。
(11)this.$router.push({ path: '/device/properties', query: { deviceName, version, numberOfRobots, imageId, modelId, robotType }, });转发路由并且通过query携带参数
转发到的组件可以在created方法里通过this.$route.query获得参数
(12)如何保持导航栏、侧边栏不变,只是更换主要页面的内容?
(13)css中height:100vh是指占屏幕高度的100%,同理1vh是指占屏幕高度的1%。
设置该属性,则在浏览器缩小窗口时,会强行安装占屏幕的比例拉伸该标签。
(14)npm i --save lodash安装lodash的JS工具库,可以实现很多数据操作(深拷贝等)
–save表示保存到package文件里,以后直接npm i就可以安装了
(15)询问前端是否还有其他的模板库?
(16)可以用