使用以下代码时:https: //github.com/iamshaunjp/vuejs-playlist/blob/lesson-18/src/App.vue
我的浏览器显示function () { [native code] }它应显示"heeey cowboy"的位置.
知道发生了什么事吗?我在这里使用CLI 进行教程,所有内容都与提供的文件完全相同.
我正在为选项卡式界面构建选项卡,用户可以在其中更改选项卡的标题。我想做的是这样的:
标记:
<div class="tabs" v-for="(tab, tabIndex) in tabs" :key="tab.id" >
<input type="text" v-model:value="tabs(tabIndex)">
</div>
Run Code Online (Sandbox Code Playgroud)
计算属性:
computed: {
scenes2: {
get(tabIndex){
return this.$store.state.tabs[tabIndex].title
},
set(value, tabIndex){
this.$store.dispatch('setTabTitle', {value: value, tabIndex: tabIndex} )
},
},
},
Run Code Online (Sandbox Code Playgroud)
这当然行不通。在这里使用 v-model 的正确方法是什么,以便我可以将 Vuex 状态下v-model的tabs数组与相关索引相关联?
在 Chrome 中使用 JavaScript 访问 HTML5 音频元素(.ogg 文件)。该文件确实可以正常播放,但不知何故它无法识别持续时间。
我只是抄了这段代码:https ://www.w3schools.com/jsref/prop_audio_duration.asp (我知道 w3schools 不是很好,但似乎还有其他问题......)
var x = document.getElementById("testTone").duration;
console.log("duration:"+x); // duration:NaN
var y = document.getElementById("testTone");
y.play(); // works!
Run Code Online (Sandbox Code Playgroud)
元素...
<audio controls id="testTone">
<source src="autoharp/tone0.ogg" type="audio/ogg">
</audio>
Run Code Online (Sandbox Code Playgroud) 某些键盘"和弦"(同时按下键的组合)将无法在浏览器中正确注册(Chrome和Firefox测试).例如,使用下面的代码,试试这个:
1)按"e"键(将记录"键69")
2)在按住"e"的同时,按"]"(它将记录"键221")
3)在按住"e"和"]"的同时,按"i"(这不能记录!)
4)但是,如果您放开"i"并按"o",它将成功记录"键79".
document.onkeydown = function(event){
var key = event.keyCode;
console.log("key", key);
};
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这里发生了什么,如果有任何解决方法?对于上下文,我正在开发一个基于QWERTY的音乐应用程序,我希望能够演奏我的所有和弦.
我知道这keyCode是不赞成的,也许是这种行为的原因之一?
这个问题的正确方法是什么?
我在Vuex getter中发现了JSON的一些奇怪行为:看来这是导致按引用传递类型的问题的原因。对于上下文-我正在开发一个音乐应用程序,它将具有多个“场景”,每个场景都包含“曲目”的集合(类似于Ableton Live)。
这是我的吸气剂:
newTrack: state => {
let newTrack = JSON.parse(JSON.stringify(state.newTrackDefaults))
return newTrack
},
Run Code Online (Sandbox Code Playgroud)
这是它所指的对象:
newTrackDefaults: {
tune: [],
// and other properties
},
Run Code Online (Sandbox Code Playgroud)
然后由一个动作调用它:
setUpNewScene: context => {
let newScene = JSON.parse(JSON.stringify(context.state.newSceneDefaults))
let newTrack = context.getters.newTrack
console.log(newTrack) // this reveals that the problem is from the getter
newScene.tracks.push(newTrack)
context.commit('addNewScene', newScene)
}
Run Code Online (Sandbox Code Playgroud)
因此,此代码的问题是,当我在第一个场景的轨道上添加项目(音高参考),然后添加新场景时,新场景会自动接收与第一个场景相同的轨道。这反映在Vuex状态中(根据DevTool),而不仅仅是渲染。而且,当用户更新第一场景上的轨道时,新场景上的轨道相应地改变。因此,本能地感觉就像是按引用传递类型的错误。
通过各种console.log实验,我发现吸气剂正在返回“填充”轨迹。通过跳过getter并将操作编写为:
setUpNewScene: context => {
let newScene = JSON.parse(JSON.stringify(context.state.newSceneDefaults))
let newTrack = JSON.parse(JSON.stringify(context.state.newTrackDefaults))
console.log(newTrack) // this works fine
newScene.tracks.push(newTrack)
context.commit('addNewScene', …Run Code Online (Sandbox Code Playgroud) 我见过一个IIFE .call(this),而不仅仅是().为什么要这样做?
上下文:https://github.com/dmauro/Keypress/blob/development/keypress.js
(据我所知,它this会引用window对象 - 无论如何都会调用IIFE.这似乎是多余的.)
在我正在制作的文本冒险中,房间的对象文字如下所示:
room : {
// some info,
exits : {
north : -1,
east : "house",
south : "forest",
west : -1
}
}
Run Code Online (Sandbox Code Playgroud)
在我的功能中移动它说:
if (room["exits"][direction] !== -1) {// go that way}
else {print "you can't go that way!"}
Run Code Online (Sandbox Code Playgroud)
现在我想通过测试相关方向的键是否存在于对象中来节省空间。所以文字会去:
room : {
// some info,
exits : {
east : "house",
south : "forest"
}
}
Run Code Online (Sandbox Code Playgroud)
……我的if陈述应该是什么样的?确定给定键名是否存在于对象中的“正确”方法是什么?
我构建了一个音乐应用程序(使用Vue和ToneJS),在该应用程序中,用户可以创建循环播放的曲目,并根据用户的选择以不同的方式进行更改。这利用了一套相当复杂的缩放计数器机制。建立了音乐功能之后,我正在研究“进度条”,该进度条显示了下一个过渡何时发生。
当前,我这样做的方式是计算所需的总步骤(每个注解是一个“步骤”),并将其与每个计数器的进度(在Vuex状态下)进行比较。就代码而言,这会花费很多精力。
更好的方法可能是每次执行步骤时都使用$ emit发送一个“滴答声”,带有进度条的组件将拾取该滴答声并将其与所需步骤进行比较。或者,在组件上使用观察程序可以检测到更改并发送报价。
但是,我已经在应用程序中遇到了一些计时性能问题,而计时对此至关重要。我是一个相对较新的开发人员,还不太了解性能。因此,我想知道的是,使用“ $emit观察者”有多“昂贵” ?由于它将被附加到应用程序的“马达”中,因此将不断对其进行调用。是否存在任何可能使齿轮变粘的危险?
我想这是一个常见的初学者问题,但我没有找到完全涵盖我的问题的答案:我无法链接到本地计算机上的图像。
我正在为 wordpress 安装制作主题(在使用 Xampp 运行 Windows 7 的戴尔上)。我的index.php文件位于:
C:\xampp\htdocs\tutorials\wordpress\wp-content\themes\LeftColumn\index.php
Run Code Online (Sandbox Code Playgroud)
我想展示的图像是:
C:\xampp\htdocs\tutorials\wordpress\wp-content\themes\LeftColumn\images\pmsplogo.jpg
Run Code Online (Sandbox Code Playgroud)
...虽然我尝试了很多变化,但不知何故,我放入的任何东西<img src=""/>似乎都不起作用。谁能解释一下针对我的情况进行编码的正确方法是什么?
请注意,它将正确显示来自外部网站的图像(例如:http : //littlewebhut.com/images/eightball.gif)
谢谢!
我正在协调输入元素与 Vuex 状态的对象的键。假设我有这个对象:
myObj: { foo: 1, bar: 2 }
Run Code Online (Sandbox Code Playgroud)
以及组件中的计算属性:
myObjVals: {
get(){ return this.$store.state.myObj },
set(//?) { //? },
},
Run Code Online (Sandbox Code Playgroud)
在模板中,我可以从商店获取值:
<input type="number" v-model="myObjVals['foo']"/> // displays "1"
<input type="number" v-model="myObjVals['bar']"/> // displays "2"
Run Code Online (Sandbox Code Playgroud)
但是当我调整输入的值时,我收到错误消息:“不要在突变处理程序之外改变 vuex 存储状态。”
这里一个明显的解决方案是为... 中的每个键使用不同的计算属性,myObj但对于较大的对象,这会变得重复/繁琐。我想知道是否有任何方式的代码作为此我试图以上,即,仅使用一个计算的属性来引用对象两者get和set功能v-model。