const routes = [
{
path: '/:year',
component: Nav,
children: [
{ path: '', name: 'test', component: Test }
]
}
];
Run Code Online (Sandbox Code Playgroud)
<!-- /2018/ -->
<router-link :to="{name: 'test', params: {year: 2018}}"></router-link>
Run Code Online (Sandbox Code Playgroud)
如果有孩子,我想删除添加到路由器链接创建的路径的尾部斜杠。
我的道具是这样的
house = {
kitchen:{
sink: ''
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的事情,但没有成功。
props: {
house: {
type: Object,
default: () => {
kitchen : {
sink: ''
}
}
}
},
Run Code Online (Sandbox Code Playgroud)
如何为此类对象设置默认道具?
import Vue from 'vue'
import App from './App'
import BootstrapVue from 'bootstrap-vue'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
Vue.config.productionTip = false
Vue.use(BootstrapVue);
/* eslint-disable no-new */
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})
Run Code Online (Sandbox Code Playgroud)
import Vue from 'vue'
import App from './App'
import BootstrapVue from 'bootstrap-vue'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
Vue.config.productionTip = false
Vue.use(BootstrapVue);
/* eslint-disable no-new */
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})
Run Code Online (Sandbox Code Playgroud)
我尝试使用该命令使用 vue 绑定样式更改元素的背景颜色, v-bind:style='{backgroundColor : color}
但它不是全高,即使我尝试删除 CSS 上 body …
我创建了一个表单,我试图了解如何在 Vue.js 中使用带有嵌套属性的 v-model
这是我的模板的代码,正如您所看到的,我正在尝试引用嵌套属性,如下所示:form.dobDate ,但是如何引用Mounted和watch中的属性(dobDate、dobMonth和dobYear)?这样我输入的任何内容都会在页面刷新时保留在那里吗?
<template>
<div>
<b-form novalidate>
<b-form-select name="dobDate" id="dobDate" v-model="form.dobDate" :options="optionsDays"></b-form-select>
<b-form-select name="dobMonth" id="dobMonth" v-model="form.dobMonth" :options="optionsMonths"></b-form-select>
<b-form-input
placeholder="Year of Birth"
required
autofocus
class="form-control"
name="year"
id="year"
min="0"
max="2003"
type="number"
v-model="form.dobYear"
></b-form-input>
<input type="text" v-model="name" />
<b-button type="submit" variant="primary">Submit</b-button>
</b-form>
<b-card class="mt-3" header="Form Data Result">
<pre class="m-0">{{ form }}</pre>
</b-card>
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
这是脚本代码:
<script>
export default {
data() {
return {
name: "",
form: {
dobDate: { …Run Code Online (Sandbox Code Playgroud) 所以我有一组按钮,我希望它们位于页面的右侧,但是justify-end/justify='end'不起作用v-row。
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@3.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
</head>
<body>
<div id="app">
<v-app>
<v-container>
<v-form>
<v-row justify='end'>
<v-col>
<v-btn>Button 1</v-btn>
<v-btn>Button 1</v-btn>
<v-btn>Button 1</v-btn>
</v-col>
</v-row>
</v-form>
</v-container>
</v-app>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
})
</script>
</body>Run Code Online (Sandbox Code Playgroud)
我看过这个问题,但是使用 text align 似乎很麻烦,我想知道是否有更好的解决方案?
Vue 3 有一个新的 Teleport 功能,它取代了 vue 2 中的 portal-vue 插件。但是,我发现不可能将组件移植到 vue 控制的地方(=在 vue 应用程序中)。它仅在移植到外部(主体、其他元素......)时有效。
const app = {
template: `
<div>
<h1>App</h1>
<div id="dest"></div>
<comp />
</div>`
}
Vue.createApp(app).component('comp', {
template: `
<div>
A component
<Teleport to="#dest">
Hello From Portal
</Teleport>
</div>`
}).mount('#app')Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@3.0.0-rc.9/dist/vue.global.js"></script>
<div id="app"></div>Run Code Online (Sandbox Code Playgroud)
如您所见,控制台甚至报告说需要已经渲染传送目标。但是我怎么能告诉 vue 先渲染哪个组件呢?在我的例子中,目标在传送前的 dom 中。
这在 portal-vue 中不是问题,而且非常令人失望,因为它使整个概念变得不那么可用。
我使用(typescript、babel、linter)创建了一个入门项目vue ui。一切工作正常,但我不太明白如何使Composition API的setup方法工作。它根本没有被调用(日志输出为空)这就是我被困住的地方。
vue:3.0.0-rc.10
vue-cli:4.5.4
<script lang="ts">
import { Options, Vue } from 'vue-class-component'
import HelloWorld from './components/HelloWorld.vue'
@Options({
components: {
HelloWorld
},
setup () {
console.log('SETUP HERE')
}
})
export default class App extends Vue {
setup () {
console.log('SETUP THERE')
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
typescript vue.js vuejs3 vue-composition-api vue-script-setup
VueJS 3.0 提供了定义组件的新语法
(https://v3.vuejs.org/api/global-api.html#arguments-3)。
import { defineComponent, ref } from 'vue'
const HelloWorld = defineComponent(function HelloWorld() {
const count = ref(0)
return { count }
})
Run Code Online (Sandbox Code Playgroud)
如何使用传递函数在本地注册组件defineComponent?
在旧样式中,您将components在组件定义对象中使用字段,如下所示:
import ComponentA from './ComponentA.vue'
export default {
components: {
ComponentA
}
// ...
}
Run Code Online (Sandbox Code Playgroud) 太长了;在 v2 中,this.$refs可以完成这项工作,但在 v3 组合 api 中我该如何做到这一点?
我正在尝试在Vue3中使用PrimeVue的CustomUpload功能,但是该API在上传文件后不会清除上传文件,我需要调用clear()父组件中的子组件的方法来清除文件并刷新按钮。
这是我的 App.vue
<template>
<FileUpload
name="upload"
url="/"
mode="basic"
:auto="true"
:maxFileSize="26214400"
:fileLimit="1"
:customUpload="true"
@uploader="upload"
/>
<Button name="lalaal">qweeq</Button>
</template>
<script>
import FileUpload from 'primevue/fileupload'
export default {
setup() {
const upload = e => {
console.log('testing', e)
}
return { upload }
},
components: {
FileUpload
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在努力理解如何使用 TSX 模板处理 Vue 3 中的自定义事件。
考虑一个简单的父/子应用程序,其中子级向父级发送自定义事件:
const Child = defineComponent({
emits: {
boom: (x: number) => true,
},
setup(props, { emit }) {
console.log("Child props", props)
return () => (
<div onClick={() => emit("boom", 123)}>Click me!</div>
)
},
})
const Parent = defineComponent(() => {
return () => <Child onBoom={(x) => console.log(`Boom: ${x}`)} />
})
Run Code Online (Sandbox Code Playgroud)
上述功能正常,并且:
setup,props是空的(正如我所期望的)。emitchild 中的调用已正确键入(它需要传递一个数字作为参数)。不幸的是,它不知道如何输入onBoom父级:
Property 'onBoom' does not exist on type 'IntrinsicAttributes & Partial<{}> …Run Code Online (Sandbox Code Playgroud) vue.js ×10
vuejs3 ×5
javascript ×4
vuejs2 ×4
html ×2
typescript ×2
css ×1
primevue ×1
tsx ×1
vue-router ×1
vue-teleport ×1
vuetify.js ×1