在style标签上添加scoped属性,以表示它的样式作用于当下的模块,很好的实现了样式私有化的目的,但是也得慎用,样式不易改变。 解决方法: ① 使用混合型的css样式,混合使用全局样式和私有样式。 ② 深度作用选择器:如果你希望scoped样式中的一个选择器能够作用的更深,可以使用>>>操作符。如:
Vue用异步队列的方式来控制DOM更新和nextTick回调先后执行。在下次DOM更新循环结束之后执行延迟回调,nextTick主要使用了宏任务和微任务,nextTick把要执行的任务推入一个队列中,在下一个tick同步执行队列的所有任务,它是异步任务中的微任务。如果我们在更新了一个响应式数据后,需要同步拿到这个渲染后的DOM结果,就使用nextTick方法,异步拿这个结果。 使用方式: ① this.nextTick.then(cb); 异步
① 是什么? Vue框架中的状态管理,分别是State、Getter、Mutation、Action、Module。 ② 怎么使用? 新建一个目录store。 ③ 功能场景? 单页应用中,组件之间的状态。音乐播放、登录状态、加入购物车等。 ④ vuex的状态: a. State特性:vuex就是一个仓库,仓库里面放了很多对象,其中state就是数据源存放地,对应于一般Vue对象里面的data。state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新。它通过mapState把全局的state和getters映射到当前组件的computed计算属性中。 b. Getter特性:getters可以对State进行计算操作,它就是store的计算属性。虽然在组件内可以做计算属性,但是getters可以在多组件之间复用。如果一个状态只在一个组件内使用,可以不用getters。 c. Mutation特性:改变store中state状态的唯一方法就是提交mutation,每个mutation都有一个字符串类型的事件类型和一个回调函数,我们需要改变state的值就要在回调函数中改变。我们要执行这个回调函数,那我们需要执行一个相应的调用方法:store.commit。 d. Action特性:类似于mutation,不同点在于:Action提交的是mutation,而不是直接变更状态。Action可以包含任意异步操作,Action函数接受一个与store实例具有相同方法和属性的context对象,因此你可以调用context.commit提交一个mutation。或者通过context.state和context.getters来获取state和getters。Action通过store.dispatch方法触发:store.dispatch('increment')。 e. Module特性:Module其实只是解决了当state中很复杂臃肿的时候,module可以将store分解为模块,每个模块中拥有自己的state、mutation、action和getter。
vue中如何编写可复用的组件?
① 创建组件页面eg Toast.vue ② 用Vue.extend() 扩展一个组件构造器,再通过实例化组件构造器,就可以创造出可复用的组件。 ③ 将toast组件挂载到新创建的div上; ④ 将toast组件的dom添加到body里; ⑤ 修改优化达到动态控制页面显示文字跟显示时间;
import Vue from 'vue';
import Toast from '@/components/Toast'; //引入组件
let ToastConstructor = Vue.extend(Toast) // 返回一个“扩展实例构造器”
let myToast = (text,duration)=>{
let toastDom = new ToastConstructor({
el:document.createElement('div') //将toast组件挂载到新创建的div上
})
document.body.appendChild( toastDom.$el ) //把toast组件的dom添加到body里
toastDom.text = text;
toastDom.duration = duration;
// 在指定 duration 之后让 toast消失
setTimeout(()=>{
toastDom.isShow = false;
}, toastDom.duration);
}
export default myToast;
如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误:
org.xml.sax.saxparseexception : premature end of file
很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In
servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。
下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道
Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha
这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中
1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1,处理超大量的数据
2,运行在便宜的PC服务器集群上,
3,击碎了性能瓶颈。
1)对数据高并发读写。
2)对海量数据的高效率存储和访问。
3)对数据的高扩展性和高可用性。
redis支持的类型:
Sring 类型
set name lijie
get name lijie
set na
在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:
public Long setnx(final byte[] key, final byte[] value) {
checkIsInMulti();
client.setnx(key, value);
ret