qwe*_*qwe 17 javascript rendering vue.js vue-component
我有一个非常基本的vueJS应用程序,我正在关注该网站.
这是代码,为什么组件不呈现?
HTML
<script src="https://unpkg.com/vue"></script>
<div id="app">
<p>{{ message }}</p>
</div>
<div>
<ol>
<todo-item></todo-item>
</ol>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
Vue.component('todo-item', {
template: '<li>This is a list item</li>'
})
Run Code Online (Sandbox Code Playgroud)
yur*_*636 38
el
mount元素内部的组件.Vue.component('todo-item', {
template: '<li>This is a list item</li>'
})
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue"></script>
<div id="app">
<ol>
<todo-item></todo-item>
</ol>
<p>{{ message }}</p>
</div>
<div>
</div>
Run Code Online (Sandbox Code Playgroud)
Yan*_*and 12
更好的是,您可以使用单个文件组件todo-item
在另一个文件中定义组件:
app.vue
import TodoItem from './components/todo-item'
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
},
components: {
TodoItem
}
})
Run Code Online (Sandbox Code Playgroud)
组件/ TODO-item.vue
<template>
<li>This is a list item</li>
</template>
<script>
export default {
name: 'todo-item'
}
</script>
Run Code Online (Sandbox Code Playgroud)
在许多Vue项目中,将使用定义全局组件
Vue.component
,然后new Vue({ el: '#container' })
在每个页面的主体中定位容器元素.这对于中小型项目非常有效,其中JavaScript仅用于增强某些视图.然而,在更复杂的项目中,或者当您的前端完全由JavaScript驱动时,这些缺点变得明显:
- 全局定义强制每个组件的唯一名称
- 字符串模板缺少语法突出显示,并且需要用于多行HTML的粗斜杠
- 没有CSS支持意味着当HTML和JavaScript被模块化为组件时,CSS显然被忽略了
- 没有构建步骤限制我们使用HTML和ES5 JavaScript,而不是像Pug(以前的Jade)和Babel这样的预处理器
所有这些都通过带有
.vue
扩展的单文件组件解决,通过Webpack或Browserify等构建工具实现.
归档时间: |
|
查看次数: |
31284 次 |
最近记录: |