问题:为什么new Vue根中的data可以直接写
解析:new Vue根组件不需要复用,因此不需要以函数方式返回
问题:vue中组件的data为什么要写成函数形式
解析:在Vue中,组件都是可复用的,一个组件创建好后,可以在多个地方重复使用,而不管复用多少次,组件内的data都必须是相互隔离,互不影响的,如果data以对象的形式存在,由于Javascript中对象是引用类型,作用域没有隔离,因此data必须以函数的形式返回
问题:vue-router 中 hash / history 是如何实现的?
解析:hash模式
#后面hash值的变化,不会导致浏览器向服务器发出请求,浏览器不发出请求,就不会刷新页面,同时通过监听hashchange事件可以知道hash发生了哪些变化。根据hash变化来实现页面的局部更新
history模式
history模式的实现,主要是Html5标准发布的两个Api(pushState和replaceState),这两个Api可以改变url,但是不会发送请求,这样就可以监听url的变化来实现局部更新
Js和native交互的方法与问题
实现JS和Native交互有两种方式:
第一种:shouldOverrideUrlLoading(WebView view, String url) 通过给WebView加一个事件监听对象(WebViewClient)并重写shouldOverrideUrlLoading(WebView view, String url)方法。当按下某个连接时WebViewClient会调用这个方法,并传递参数view和url
第二种:JS和Java互调 WebView开启JavaScript脚本执行 WebView设置供JavaScript调用的交互接口
Eval函数的作用
eval可以将字符串生成语句执行,一般执行动态的js语句。 eval的使用场合:有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。
![3ad01cb254f965e28c7f24f5764e0951.png](https://i-blog.csdnimg.cn/blog_migrate/b903501cc9d645781c737c8a9cb203fe.jpeg)
开课吧Web前端面试题
以上就是酷仔今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后酷仔每日均会提供Python及Web相关的习题。