vue技巧篇:组件通讯
vue技巧篇:我的浏览器也是“控制台”
前言
写代码少不了,调试最简单方便的方法是控制台输出信息,如js的 control.log
。
可有时候我们要监听的变量是改动频繁,可能要多次使用control.log
,控制台信息太多看得也容易乱。
有一次查阅资料的时候,看到其他开发者使用pre
标签直接在页面上打印变量,突然受到了一点感悟。
pre 和 $data
html的pre
标签并不常用,它可以保留原格式(空格和换行符),常用于表示源代码。
有了pre
我们很容易在页面上输出源码。此外,还需要vue的声明式渲染 —— {{ x }}
或者是 v-text
指令。
以及 vue 的 $data
实例属性,其实引用的是data
对象属性的访问。
附:博客系统,不支持双括号,这里用 v-text
代替,大部分情况下两者可以互换
说了那么多,其实只需要<pre v-text="$data"></pre>
,这一行就够了。好的,今天就到这里,大家再见。
…
项目部署
工作中实操过的项目部署记录,使用的是Ubuntu系统,nignx 和 C# 的运行环境均已安装。
前期配置文件准备
# 以acs.HOST.cn举例 (HOST)为主域名
# 项目路径
/home/wwwroot/acs.xxx.cn
# 从服务器下载文件配置文件(需要本机使用pscp或其他支持ftp协议的程序)
pscp USERNAME@IP:/home/wwwroot/acs.HOST.cn/appsettings.json E:\PATH
# nginx 配置acs 所有项目(HOSTboss.conf)
usr/local/nginx/conf/HOSTboss.conf
# nginx 配置路径
usr/local/nginx/conf/nginx.conf
# 守护进程
/etc/systemd/system/apps.acs.serive
vue的一些技巧
v-if
获取 refs
问题
先简单介绍下这两个指令:
v-if
条件渲染ref
返回组件实例或DOM元素
有时候我们需要在条件渲染的DOM节点上返回一个DOM对象或组件实例,可this.$refs.child
返回的是undefined
。通过查阅文档得知:
v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条块。
$refs 只会在组件渲染完成之后生效,并且它们不是响应式的。这仅作为一个用于直接操作子组件的“逃生舱”——你应该避免在模板或计算属性中访问 $refs。
如此可得:
v-if
条件渲染: 惰性渲染,DOM、事件、组件会被销毁重建
ref
返回组件实例或DOM元素,非相应式
原型链是如何贯穿js的
原型链是js的大动脉。
导读
js的原型链难以避免要牵扯到面向对象,这里我们先简单说说原型还有原型链。之后我们说到面向对象的演变过程,会再次涉及到原型链,还有更多的东西。相信看完的读者会对JavaScript会有更深的认识。
原型对象
本小节意在介绍js中几位朋友,读者只需要记住有它们的存在就行了,毕竟这几位朋友性格有点隐匿。
首先,我们要明白,声明一个对象,哪怕是空属性,js也生成一些内置的属性和方法。
/* 两种方法声明对象 */
// 对象直接量
var obj_1 = {};
// new关键字声明对象
var obj_2 = new Object();
// 在Object的原型对象添加属性
Object.prototype.attr = 'myarr'
console.log(obj_1); // {}
console.log(obj_2); // {}
// js中的恒等符号对函数来说只比较引用
// obj_1.valuOf函数来源于Object.valueOf
// 更准确来说是Object.protoype.valueOf
console.log(obj_1.valueOf === Object.valueOf); // true
// obj_1并未声明attr属性,通过Object.prototype继承得到attr属性
console.log(obj_1.attr); // myarr
es6主要特性小结
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。
Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
let:let
实际上为JavaScript新增了块级作用域。用它所声明的变量,只在let
命令所在的代码块(花括号)内有效;与var
的区别是,var
用来做循环的计数变量,会泄露成全局变量,在外部调用的值是循环完成后的值。
const:声明变量,但声明的是常量,一旦声明,常量的值不能改变。