写在前面,说一下我对ts的个人看法吧。(大佬勿喷!)
对于项目而言是用ts还是js这个看情况吧,反正混用也不冲突(反正是使用vue-property-decorator)。
js方便快捷,ts相对而言严谨,规范点(静态类型语言,所写即所得),但是生态感觉js还是强于ts的,js用起来方便。前端用框架vue感觉js+ts都行吧没必要非要用那一种,react的话ts应该爽一点。如果构建原生的感觉ts要好一点。
1,安装vue-cli脚手架,这里不赘述。
npm install -g @vue/cli
2,创建vue+ts的工程
vue create my-project-name
enter以后选择自定义的安装(选择 "Manually select features (手动选择特性)" 选项。)
<h1>{{ msg }}</h1>
<div class="tree-main"><TreeChart :json="treeData" /></div>
<button @click="saveBtn">Ecosystem</button>
</template>
<script lang="ts">
import { Component, Prop, Vue, Emit } from 'vue-property-decorator';
import TreeChart from "vue-tree-chart";
@Component({
components:{
TreeChart
export default class HelloWorld extends Vue {
@Prop() private msg!: string;
@Emit('toData') emitVal(num: string) {
// 这里是emit传值的时候可以添加一些方法
private saveBtn() {
this.emitVal('123456789')
private treeData = {
name: 'root',
image_url: require('@/assets/logo.png'),
children: [
name: 'children1',
image_url: require('@/assets/logo.png')
name: 'children2',
image_url: require('@/assets/logo.png'),
mate: {
name: 'mate',
image_url: require('@/assets/logo.png')
children: [
name: 'grandchild',
image_url: require('@/assets/logo.png')
name: 'grandchild2',
image_url: require('@/assets/logo.png')
name: 'grandchild3',
image_url: require('@/assets/logo.png')
name: 'children3',
image_url: require('@/assets/logo.png')
</script>
5,直接引入js的插件会报错问题
Could not find a declaration file for module 'XXX'
提示找不到申明模块,要你去.d.ts文件里面声明一下。找到shims-vue.d.ts文件